lúc tải về những bộ thỏng viện trên Internet (nhất là thư viện Jquery, Javascript), thỉnh thoảng các bạn sẽ nhận được số đông file siêu nhỏ, văn bản bên phía trong thì bị minify và ko có một chút meaning làm sao. Đó đó là chuyên môn Obfuscated code.
Bạn đang xem: Obfuscation là gì
Obfuscated code là gì?
Đây là một trong những chuyên môn nhằm vấn đáp cho thắc mắc nhưng mình thường xuyên chạm mặt của các bạn developer new vào nghề: “Làm sao để che giấu source code của mình?”. Hãy thử coi ví dụ phía dưới:
Source:
function redirectUrl(url, selectorString) if (url !== "") function removeData(row) row.addClass("warning"); row.fadeOut(400, function () row.remove(); );var delay = (function () var timer = 0; return function (callbaông chồng, ms) clearTimeout(timer); timer = setTimeout(callbaông chồng, ms); ;)();Obfuscated code:
eval(function(p,a,c,k,e,d)e=function(c)return c.toString(36);if(!"".replace(/^/,String))while(c--)k=
eval(function (p, a, c, k, e, d) e = function (c) return c.toString(36) ; if (!"".replace(/^/, String)) while (c--) c.toString(a) k =
Các bạn có thể thấy, với Obfuscated code, nó không đông đảo chỉ minify (cắt bỏ các đoạn xuống mẫu, vết bí quyết không quan trọng làm cho sút dung tích file, tiết kiệm băng thông) nhưng mà nó còn thay đổi luôn cả thương hiệu lớp, tên hàm, tên biến chuyển,… thành phần đông kí tự đơn giản dễ dàng bất nghĩa (VD: a(), var b,…). Vậy yêu cầu Obfuscated code còn được biết đến cùng với cái tên Việt là nghệ thuật có tác dụng rối code: fan không giống rất có thể đã đạt được code của doanh nghiệp nhưng mà khó rất có thể đọc hết cục bộ ý nghĩa code nhưng mà bạn viết

Xem thêm: Nghĩa Của Từ Biên Độ Là Gì, Cách Tính Biên Độ Nhiệt Độ Và Ý Nghĩa Của Nó
Obfuscation == Encryption?
Không, obfuscation != encryption.
Trong JavaScript, trình chăm chút hoàn toàn có thể thực thi encrypted code, trong khi trình chăm chút đã triển khai obfuscated code.Encrypted code luôn luôn buộc phải lời giải sẽ được tiến hành.Obfuscated code ko đề xuất khử dữ liệu nhằm thực hiện.Lúc viết Obfuscator phải crúc ý:
-Chỉ biến đổi rất nhiều thương hiệu riêng biệt, ko biến đổi từ khóa, tên lệnh, hay các API của hệ thống
-Tránh xung hốt nhiên tên. Ví dụ: trường hợp cố tên lớp với tên trở nên tương tự nhau, chương trình rất có thể chạy rất khác thông thường và thậm chí là không hiểu biết nó sẽ có tác dụng gì
-Nhất tiệm. khi thay đổi tên đề xuất biến đổi toàn bộ những file nguồn gồm đựng thuộc đối tượng người dùng đó. Ví dụ: file abc.jsp đựng lớp thương hiệu ABC thì Khi thay tên lớp ABC, tất cả các tệp tin không giống bao gồm sử dụng lớp ABC cũng cần đổi khác theo.
-Đặt thương hiệu mới càng nđính thêm càng giỏi. Làm như vậy nhằm dịch mã nhanh hao hơn, đỡ tốn công sức mang đến trình dịch
-Lọai bỏ dư thừa
Làm sao nhằm Obfuscated code?
Tất nhiên bạn có thể từ bỏ làm cho thủ công bằng tay. Thôi, tốt nhất có thể là dùng các bộ thỏng viện, phần mềm hoặc một số tools online bởi vì phần đông luật này đã có viết nhằm hoàn toàn có thể Obfuscated code của người tiêu dùng một giải pháp buổi tối ưu độc nhất. Một số tools online:
JavaScript HTML Code/Text ObfuscatorOnline Javascript Obfuscator DaftLogicJsobfuscateNếu code của doanh nghiệp bởi vì cộng đồng thì các bạn chỉ cần minify để bớt dung tích file thôi, còn trường hợp vẫn ý muốn giấu code thì Obfuscated code là một lựa chọn về tối ưu cho bạn. Cám ơn các bạn vẫn đọc bài bác viết