Làm xáo trộn và thu nhỏ javascript

Nếu bạn là người làm bên lập trình web thì chắc ít bạn cũng từng đụng đến code Javascript. Đặc biệt là các dự án website trang web nghe nhạc hay web truyện, xem phim,… có sử dụng mã Javascript rất nhiều. Nếu chỉ là mã bình thường bạn làm theo chia sẻ trên mạng thì không nói, nhưng nếu mã bạn tự nghĩ ra và muốn bảo mật chúng thì sao?

Javascript Obfuscator là một trong số những công cụ giúp bạn mã hóa mã Javascript. Làm cho đoạn mã của bạn trở nên khó đọc hơn so với người bình thường, nhưng máy tính thì nó vẫn hiểu và hoạt động bình thường

Đây là một công cụ hoàn toàn miễn phí. Bạn có thể sử dụng trực tuyến hoặc tải phần mềm về cài đặt trên máy. Nhưng mình vẫn thích sử dụng bản online hơn. Để bắt đầu mã hóa mã Javascript của bạn, bạn truy cập vào công cụ Online Obfuscator miễn phí trên mạng. Sau đó, bạn chỉ việc sao chép mã Javascript của bạn bỏ qua ô bên trái hoặc bạn có thể chọn tệp. txt or. js tùy chọn. Sau cùng là nhấn nút Obfuscator để tiến hành mã hóa mã hóa. Sau đó, bạn chỉ việc sử dụng mã đã mã hóa chạy trên dự án trực tiếp của bạn là được. Chúc bạn thành công.
Sau cùng là bạn chỉ việc sử dụng mã đã mã hóa chạy trên dự án trực tiếp của bạn là được. Chúc bạn thành công.

Khi tải các bộ thư viện trên Internet [đặc biệt là thư viện Jquery, Javascript], xin chào các bạn sẽ nhận được những file rất nhỏ, nội dung bên trong thì bị minify và không có 1 chút ý nghĩa nào cả. Đó chính là kỹ thuật Obfuscated code.

Obfuscated code là gì?

Đây là một kỹ thuật để trả lời cho câu hỏi mà mình thường gặp các nhà phát triển mới vào nghề của bạn. “Làm sao để che giấu mã nguồn của mình?”. Please try to view the below

Nguồn

function redirectUrl[url, selectorString] {
    if [url !== ''] {
        if [selectorString === null || [selectorString !== null && $[selectorString].val[] != url]] {
            window.location.replace[url];
        }
    }
}
function removeData[row] {
    row.addClass["warning"];
    row.fadeOut[400, function [] {
        row.remove[];
    }];
}
var delay = [function [] {
    var timer = 0;
    return function [callback, ms] {
        clearTimeout[timer];
        timer = setTimeout[callback, ms];
    };
}][];

mã bị xáo trộn

eval[function[p,a,c,k,e,d]{e=function[c]{return c.toString[36]};if[!''.replace[/^/,String]]{while[c--]{d[c.toString[a]]=k[c]||c.toString[a]}k=[function[e]{return d[e]}];e=function[]{return'\w+'};c=1};while[c--]{if[k[c]]{p=p.replace[new RegExp['\b'+e[c]+'\b','g'],k[c]]}}return p}['1 g[3,4]{6[3!=='']{6[4===a||[4!==a&&$[4].d[]!=3]]{f.b.c[3]}}}1 e[2]{2.l["n"];2.o[h,1[]{2.p[]}]}7 m=[1[]{7 5=0;i 1[8,9]{j[5];5=k[8,9]}}][];',26,26,'|function|row|url|selectorString|timer|if|var|callback|ms|null|location|replace|val|removeData|window|redirectUrl|400|return|clearTimeout|setTimeout|addClass|delay|warning|fadeOut|remove'.split['|'],0,{}]]

Định dạng mã bị xáo trộn

eval[function [p, a, c, k, e, d] {
    e = function [c] {
        return c.toString[36]
    };
    if [!''.replace[/^/, String]] {
        while [c--] {
            d[c.toString[a]] = k[c] || c.toString[a]
        }
        k = [function [e] {
            return d[e]
        }];
        e = function [] {
            return '\w+'
        };
        c = 1
    }
    ;
    while [c--] {
        if [k[c]] {
            p = p.replace[new RegExp['\b' + e[c] + '\b', 'g'], k[c]]
        }
    }
    return p
}['1 g[3,4]{6[3!=='']{6[4===a||[4!==a&&$[4].d[]!=3]]{f.b.c[3]}}}1 e[2]{2.l["n"];2.o[h,1[]{2.p[]}]}7 m=[1[]{7 5=0;i 1[8,9]{j[5];5=k[8,9]}}][];', 26, 26, '|function|row|url|selectorString|timer|if|var|callback|ms|null|location|replace|val|removeData|window|redirectUrl|400|return|clearTimeout|setTimeout|addClass|delay|warning|fadeOut|remove'.split['|'], 0, {}]]

Tại sao cần phải làm xáo trộn mã?

  • Dung lượng code sẽ được giảm xuống
  • Trong Javascript, sẽ làm cho thời gian tải xuống đáng kể
  • Khi mã bị xáo trộn sẽ rất khó để đảo ngược định dạng ban đầu

Các bạn có thể thấy, với Obfuscated code, nó không chỉ là những minify [bỏ các đoạn xuống dòng, đánh dấu cách không cần thiết làm giảm dung lượng tệp, tiết kiệm điện trở thông tin] mà nó còn thay đổi luôn cả tên lớp, tên hàm, . a[], var b,…]. Do đó, mã bị xáo trộn còn được biết đến với cái tên Việt là kỹ thuật làm mã rối. người khác có thể có mã của bạn nhưng khó có thể hiểu hết toàn bộ ý nghĩa của mã mà bạn viết kỹ thuật làm mã rắc rối. người khác có thể có mã của bạn nhưng khó có thể hiểu hết toàn bộ ý nghĩa mã mà bạn viết

Mã bị xáo trộn được sử dụng trong rất nhiều ngôn ngữ chứ không chỉ riêng Javascript. Thường thì phản đối với các nguồn công khai họ sẽ chỉ thu nhỏ để giảm dung lượng tệp khi tải. The Obfuscateed only used when you want to change better effect and ĐẶC BIỆT LÀ ĐƯỢC SỬ DỤNG ĐỂ XÁC NHẬN MÃ. Giấu mã ở đây cũng không hoàn toàn là không khôi phục ngược được, tuy nhiên sẽ mất khá nhiều thời gian

Obfuscation == Mã hóa?

Không, obfuscation. = mã hóa

  • Trong JavaScript, trình duyệt có thể thực thi mã được mã hóa này, trong khi trình duyệt sẽ thực thi mã bị xáo trộn
  • Mã đã mã hóa luôn cần giải mã để được thực thi
  • Mã bị xáo trộn không yêu cầu khử dữ liệu để thực thi

Khi viết Obfuscator cần chú ý

-Chỉ thay đổi tên riêng, không thay đổi từ khóa, tên lệnh, hay các API của hệ thống

-Tranh đột biến tên. Ví dụ. nếu thay tên lớp và tên biến giống nhau, chương trình có thể chạy không giống bình thường và thậm chí chí ít là không hiểu nó đang làm gì

-Nhất quán. Khi thay đổi tên phải thay đổi toàn bộ nguồn tệp có chứa cùng đối tượng đó. Ví dụ. tập tin abc. jsp chứa tên lớp ABC, khi đổi tên lớp ABC, tất cả các tệp khác có sử dụng lớp ABC cũng phải thay đổi theo

-Đặt tên mới càng ngắn càng tốt. Làm như thế để dịch mã nhanh hơn, hỗ trợ công sức cho các giao dịch

-Loai bỏ dư thừa

Làm sao để làm xáo trộn mã?

Đương nhiên bạn có thể tự làm bằng tay. Thôi, tốt nhất là sử dụng các bộ thư viện, phần mềm hoặc một số công cụ trực tuyến vì những công cụ này đã được viết để có thể làm xáo trộn mã của bạn một cách tối ưu nhất. Một số công cụ trực tuyến

  • JavaScript HTML Code/Văn bản Obfuscator
  • Trực tuyến Javascript Obfuscator DaftLogic
  • Jsobfuscate

Nếu mã của bạn là vì cộng đồng, thì bạn chỉ cần thu nhỏ để giảm dung lượng tệp thôi, còn nếu vẫn muốn ẩn mã thì Mã xáo trộn là lựa chọn tối ưu cho bạn. Cám ơn các bạn đã đọc bài viết

Chủ Đề