Obfuscate là gì và khi nào nó Được sử dụng? obfuscated code trong lập trình

     

Lúc tải về các bộ thỏng viện trên Internet (đặc biệt là thư viện Jquery, Javascript), thỉnh phảng phất bạn sẽ cảm nhận hồ hết file khôn cùng nhỏ dại, ngôn từ bên trong thì bị minify với không có 1 chút ít meaning như thế nào. Đó chính là nghệ thuật Obfuscated code.

Bạn đang xem: Obfuscate là gì và khi nào nó Được sử dụng? obfuscated code trong lập trình

Obfuscated code là gì?

Đây là 1 trong chuyên môn nhằm vấn đáp mang lại câu hỏi mà bản thân thường xuyên gặp của các bạn developer bắt đầu vào nghề: “Làm sao nhằm che giấu source code của mình?”. Hãy demo xem ví dụ phía dưới:

Source:

function redirectUrl(url, selectorString) if (url !== "") (selectorString !== null &và $(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(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=>;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!=="")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,))Obfuscated code format:

eval(function (p, a, c, k, e, d) e = function (c) return c.toString(36) ; if (!"".replace(/^/, String)) while (c--) c.toString(a) 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, ))Tại sao cần được Obfuscated code?

Dung lượng code sẽ tiến hành giảm đi.Trong Javascript, đã làm thời hạn cài xuống đáng kể.Khi code được Obfuscated sẽ tương đối nặng nề để hòn đảo ngược chở lại định dạng thuở đầu.

Các chúng ta cũng có thể thấy, với Obfuscated code, nó không hầu hết chỉ minify (cắt quăng quật những đoạn xuống dòng, vết bí quyết không cần thiết làm sút dung lượng tệp tin, tiết kiệm chi phí băng thông) cơ mà nó còn biến đổi luôn cả tên lớp, thương hiệu hàm, thương hiệu đổi thay,… thành phần đông kí từ bỏ dễ dàng vô nghĩa (VD: a(), var b,…). Vậy buộc phải Obfuscated code còn được nghe biết với cái thương hiệu Việt là nghệ thuật làm rối code: người không giống có thể giành được code của bạn tuy nhiên cực nhọc hoàn toàn có thể đọc không còn cục bộ ý nghĩa code nhưng mà các bạn viết

*
Obfuscated code được dùng trong không hề ít ngữ điệu chứ đọng không chỉ riêng Javascript. Thông thường so với những source public họ đang chỉ minify nhằm bớt dung tích file Lúc load. Còn Obfuscated chỉ dùng Lúc mong cải thiện công suất không dừng lại ở đó với đặc biệt là dùng để giấu code. Giấu code tại đây cũng ko trọn vẹn là ko dịch trở lại được, tuy nhiên đang tốn tương đối nhiều thời gian.

Xem thêm: Sinh Năm 2017 Mệnh Gì? Tuổi Đinh Dậu Hợp Tuổi Nào, Màu Gì, Hướng Nào?

Obfuscation == Encryption?

Không, obfuscation != encryption.

Trong JavaScript, trình để mắt tới hoàn toàn có thể triển khai encrypted code, trong lúc trình để ý vẫn xúc tiến obfuscated code.Encrypted code luôn bắt buộc giải mã và để được xúc tiến.Obfuscated code không những hiểu biết khử dữ liệu để thực hiện.

lúc viết Obfuscator đề nghị chụ ý:

-Chỉ thay đổi số đông tên riêng, không biến hóa từ bỏ khóa, thương hiệu lệnh, tốt những API của hệ thống

-Tránh xung hốt nhiên tên. Ví dụ: trường hợp nuốm tên lớp với thương hiệu trở thành tương đương nhau, công tác hoàn toàn có thể chạy rất khác bình thường cùng thậm chí là là thiếu hiểu biết nhiều nó đang có tác dụng gì

-Nhất tiệm. Khi biến đổi tên cần biến đổi tổng thể những tệp tin nguồn gồm chứa cùng đối tượng người tiêu dùng đó. Ví dụ: file abc.jsp chứa lớp tên ABC thì lúc đổi tên lớp ABC, tất cả các tệp tin không giống tất cả cần sử dụng lớp ABC cũng buộc phải chuyển đổi theo.

-Đặt tên bắt đầu càng nlắp càng xuất sắc. Làm như thế nhằm dịch mã nhanh hơn, đỡ tốn sức lực mang đến trình dịch

-Lọai vứt dư thừa

Làm sao nhằm Obfuscated code?

Tất nhiên chúng ta có thể từ bỏ có tác dụng bằng tay. Thôi, tốt nhất có thể là sử dụng những cỗ tlỗi viện, ứng dụng hoặc một số trong những tools online vày mọi phương tiện này đã được viết nhằm có thể Obfuscated code của doanh nghiệp một bí quyết tối ưu duy nhất. Một số tools online:

JavaScript HTML Code/Text ObfuscatorOnline Javascript Obfuscator DaftLogicJsobfuscate

Nếu code của chúng ta nguyên nhân là xã hội thì chúng ta chỉ việc minify nhằm sút dung tích tệp tin thôi, còn trường hợp vẫn mong muốn giấu code thì Obfuscated code là 1 trong những chọn lựa buổi tối ưu cho bạn. Cám ơn chúng ta sẽ gọi bài bác viết


Chuyên mục: Tài liệu