Hướng dẫn mã hóa javascript

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!

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:

//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é !

javascriptobfuscator.com

Ngoài ra còn có:

//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ò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: //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

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.

Hôm nay, mình chia sẻ đến các bạn những trang web chuyên dùng để mã hóa và giải mã code Javascript. Đây là những trang web mình hay dùng để mã hóa và giải mã những giao diện Blogger.

Tuy nhiên, mình không dùng nó để mua bán, trục lợi cho bản thân, mà mình dùng nó để học hỏi thêm kinh nghiệm mà thôi.

Những trang web mã hóa code Javascript

  • //javascriptobfuscator.com/Javascript-Obfuscator.aspx: đây là trang mã hóa mạnh mẽ nhất, khó giải mã, và hiện tại mình phải đau đầu vì không tìm ra công cụ để giải mã nó, khi mã hóa có dạng như sau
    var _0xb89f=["x53x61x79x48x65x6Cx6Cx6F","x47x65x74x43x6Fx75x6Ex74
  • //dean.edwards.name/packer/: mã hóa xong sẽ có dạng
    eval[function[d,e,a,c,b,f]{b=function[a]{return...
  • //www.base64encode.org/: khi mã hóa sẽ có dạng những ký tự loằng ngoằng khó hiểu
    PCFET0NUWVBFIGh0bWw+PEhUTUw+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmLTgiPjx0aXRsZT5DU1MzIEJ1dHRvbiBHZW5lcmF0b3IgfCBCZXN0IEJlYXV0aWZ1bCBDU1

Những trang web giải mã code Javascript

  • //www.base64decode.org/
  • //dean.edwards.name/unpacker/: chuyên giải các mã có dạng
    eval[function[d,e,a,c,b,f]{b=function[a]{return...
  • //ddecode.com/hexdecoder/: chuyên giải các mã HTML/Hexa/Octa.
  • //jsbeautifier.org: trang này vừa giải mã vừa có chức năng làm đẹp cho đoạn JS quá dài dòng và rối rắm.
  • //www.strictly-software.com/unpack-javascript
  • //matthewfl.com/unPacker.html
  • //url-decode.com/
  • //lelinhtinh.github.io/de4js/

326 lượt xem | 15 Bình luận

Chủ Đề