Lập trình

Công cụ mã hóa file Javascript – tránh lộ code

Làm thế nào để mã hóa file javascript trên website ? Bạn biết đấy, chúng ta có thể lấy bất kỳ một hàm nào của ai đó trên website

Javascript là một ngôn ngữ kịch bản/thông dịch. Không giống như Java hay .NET, Javascript không cần comply trước khi chạy. Javascript thường chạy trên phía người dùng (trên trình duyệt) nên càng dễ dàng được copy! Vậy làm thế nào để mã hóa file Javascript hay một hàm trong đó? Chuyện nhỏ, chúng ta có nhiều cách!

Encryption - mã hóa - hacker - lập trình - mã hóa mã nguồn

Tại sao phải mã hóa hàm Javascript ?

Vì đơn giản, hàm của bạn có chứa thuật toán mà bạn muốn chỉ riêng bạn có. Hoặc như Google, tất cả các hàm liên quan đều được mã hóa theo cách riêng để tránh hacker hay web deverloper nhòm ngó !

Cũng như mình, mình có vài hàm liên quan tới bảo mật cho API riêng nên bắt buộc phải mã hóa hàm Javascript trong file.

Bằng cách nào ?

Có 2 cách cơ bản là xáo trộn hàm và mã hóa rồi giải mã dùng hàm eval. Tuy nhiên xáo trộn vẫn là cách tốt nhất để bảo mật cho file Javascript của bạn. Đơn giản vì nó chạy tốt, không tốn tài nguyên như hàm eval!

Nói chung, trong ngôn ngữ nào cũng vậy, chạy hàm tương tự như eval là một tối kiến, tối tới mức không thể nào đen hơn. Đó không phải là cách mã hóa Javascript tốt.

Các công cụ mã hóa file Javascript

Tất cả các công cụ mã hóa Javascipt sau đây đều Online hết, dễ sử dụng:

https://javascriptobfuscator.com : Đây là website mình hay dùng nhất. Nó dễ và căn bản là mình mã hóa bằng website này chưa thấy lỗi phát nào. Hàm chạy rất ngon nhé !

Bảo mật Javascript với javascriptobfuscator.com
javascriptobfuscator.com

Ngoài ra còn có:

https://www.danstools.com/ : Công cụ này mã hóa hàm Javascript bằng hàm Eval. Tuy code ngắn gọn hơn cách xáo trộn nhưng chạy hàm này thường tốn CPUnặng trình duyệt. Nhưng hàm của bạn nhỏ thì cũng chẳng có gì đáng ngại nhé.

Công cụ mã hóa Javascript danstools.com
Công cụ mã hóa Javascript danstools.com

Còn nếu bạn nào muốn lấy file nguồn về để làm công cụ cho riêng mình thì đây: https://github.com/javascript-obfuscator/javascript-obfuscator

Với các công cụ hỗ trợ mã hóa file Javascript trên, bạn sẽ bảo vệ được hàm của mình trên trình duyệt. Chúc các bạn thành công nha ! Mời xem thêm cách tăng tốc website dùng Async cho Javascript !

Trong trường hợp khác, các bạn có thể học TypeScript để gõ Javascript. Code nó xuất ra cũng rất khó để đọc đấy nha! Chưa kể là nếu kết hợp Typescript với Webpack thì đúng là căng đét!

Webpack giúp nén toàn bộ module thành một file duy nhất
Webpack giúp nén toàn bộ module thành một file duy nhất

Cho nên, nếu mã hóa ở mức cơ bản mà không cần phải bảo mật đoạn code bản quyền, mình ưu tiên dùng Webpack. Nhanh gọn, tối ưu dung lượng và tốc độ.

Nếu bạn dùng ReactJS, các bạn có thể xài Webpack để tối ưu code và hạn chế đánh cắp code ngoài Front-end.

Thông tin liên quan

Bạn đang xem bài viết mã hóa file Javascript tại blog cá nhân của Jam. Còn rất nhiều các bài viết khác tại chuyên mục Lập trình đang được yêu thích.