Khi download những bộ tlỗi viện trên Internet (nhất là tlỗi viện Jquery, Javascript), thỉnh thoảng các bạn sẽ nhận ra đầy đủ file siêu nhỏ dại, văn bản bên trong thì bị minify cùng ko có một chút meaning làm sao. Đó chính là nghệ thuật Obfuscated code.

Bạn đang xem: Obfuscation là gì

Obfuscated code là gì?

Đây là một trong nghệ thuật để trả lời cho thắc mắc cơ mà bản thân hay gặp mặt của các bạn developer mới vào nghề: “Làm sao nhằm che giấu source code của mình?”. Hãy test coi ví dụ phía dưới:

Source:

function redirectUrl(url, selectorString) if (url !== "") (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 (callbachồng, ms) clearTimeout(timer); timer = setTimeout(callback, ms); ;)();Obfuscated code:

eval(function(p,a,c,k,e,d)e=function(c)return c.toString(36);if(!"".replace(/^/,String))while(c--)k=>;e=function()return"w+";c=1;while(c--)if(k)p=p.replace(new RegExp(""+e(c)+"","g"),k)return p("1 g(3,4)6(3!=="")6(4===a1 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,))Obfuscated code format:

eval(function (p, a, c, k, e, d) e = function (c) return c.toString(36) ; if (!"".replace(/^/, String)) while (c--) d = k k = >; e = function () return "w+" ; c = 1 ; while (c--) if (k) p = p.replace(new RegExp("" + e(c) + "", "g"), k) return p("1 g(3,4)6(3!=="")(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 rất cần phải Obfuscated code?

Dung lượng code sẽ tiến hành giảm sút.Trong Javascript, vẫn làm thời gian cài đặt xuống đáng kể.Khi code được Obfuscated sẽ rất cực nhọc nhằm hòn đảo ngược trở lại định dạng ban đầu.

Các chúng ta có thể thấy, với Obfuscated code, nó ko hồ hết chỉ minify (giảm quăng quật các đoạn xuống loại, dấu biện pháp ko quan trọng có tác dụng bớt dung tích tệp tin, tiết kiệm chi phí băng thông) mà nó còn biến hóa luôn luôn cả thương hiệu lớp, tên hàm, thương hiệu biến hóa,… thành số đông kí trường đoản cú đơn giản dễ dàng vô nghĩa (VD: a(), var b,…). Vậy phải 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ể đã có được code của khách hàng cơ mà nặng nề hoàn toàn có thể phát âm không còn cục bộ chân thành và ý nghĩa code nhưng chúng ta viết

*
Obfuscated code được sử dụng trong rất nhiều ngôn từ chứ đọng không chỉ riêng Javascript. Thường thì so với các source public bọn họ vẫn chỉ minify để sút dung lượng tệp tin lúc load. Còn Obfuscated chỉ sử dụng lúc muốn cải thiện công suất hơn nữa cùng đặc biệt là dùng để giấu code. Giấu code ở đây cũng ko trọn vẹn là không dịch ngược trở lại được, tuy vậy sẽ tốn khá nhiều thời hạn.

Xem thêm: " Waffles Là Gì ? Ăn Với Gì, Có Mập Không? Hướng Dẫn Cách Chọn Máy Làm Waffle

Obfuscation == Encryption?

Không, obfuscation != encryption.

Trong JavaScript, trình chuẩn y rất có thể triển khai encrypted code, trong những khi trình xem xét đang thực thi obfuscated code.Encrypted code luôn phải giải thuật và để được xúc tiến.Obfuscated code không đề nghị khử dữ liệu để tiến hành.

Xem thêm: Tiêu Chuẩn Gacp Là Gì ?

Khi viết Obfuscator bắt buộc chụ ý:

-Chỉ đổi khác các thương hiệu riêng biệt, không đổi khác tự khóa, thương hiệu lệnh, hay những API của hệ thống

-Tránh xung tự dưng tên. Ví dụ: nếu cố gắng tên lớp với tên thay đổi tương đương nhau, công tác hoàn toàn có thể chạy không giống bình thường với thậm chí là là không hiểu nó sẽ làm cho gì

-Nhất quán. Lúc thay đổi tên nên đổi khác toàn thể những tệp tin mối cung cấp gồm đựng thuộc đối tượng người sử dụng kia. Ví dụ: file abc.jsp cất lớp tên ABC thì khi đổi tên lớp ABC, tất cả những tệp tin không giống tất cả dùng lớp ABC cũng bắt buộc biến hóa theo.

-Đặt thương hiệu mới càng nđính thêm càng giỏi. Làm như vậy để dịch mã nkhô hanh hơn, đỡ tốn công sức của con người đến trình dịch

-Lọai bỏ dư thừa

Làm sao để Obfuscated code?

Tất nhiên chúng ta cũng có thể từ có tác dụng thủ công. Thôi, tốt nhất là sử dụng các bộ thỏng viện, ứng dụng hoặc một vài tools online do những chế độ này đã được viết để rất có thể Obfuscated code của doanh nghiệp một cách buổi tối ưu tuyệt nhất. Một số tools online:

JavaScript HTML Code/Text ObfuscatorOnline Javascript Obfuscator DaftLogicJsobfuscate

Nếu code của công ty là vì cộng đồng thì bạn chỉ việc minify nhằm bớt dung tích tệp tin thôi, còn trường hợp vẫn mong giấu code thì Obfuscated code là 1 trong lựa chọn tối ưu cho chính mình. Cám ơn các bạn vẫn gọi bài xích viết

Bài viết liên quan

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *