Che giấu javascript là 1 cách bảo vệ khỏi bị người khác chôm chỉa khi bị view source và khi muốn dùng riêng cho bản thân mình , đây là cách để thêm 1 tầng để bảo vệ mã .,nhất là khi dùng với ajax , che giấu hay mã hóa sẽ giảm thiểu nguy cơ bị hacker tấn công .
Ngoài cách mã hóa thông thường còn có vài kiểu nữa là compiler code của google
và sử dụng Packer chủ yếu để làm cho mã javascript trở nên khó đọc hơn làm mất time cũng như nản lòng hacker khi tấn công.
ví dụ với script đơn giản như
document.write('Hello, world!');khi pack nó sẽ thành
eval(function(p,a,c,k,e,r){e=String;if(!''.replace(/^/,String)){while(c--)r[c]=k[c]||c;k=[function(e){return r[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}('0.1(\'2, 3!\');',4,4,'document|write|Hello|world'.split('|'),0,{}))
để unpack đoạn javascript bạn sẽ làm cho nó hiện mã thật ngay trên trình duyệt của mình
bằng cách dễ dàng sau :
copy code mã hóa sang vào 1 thẻ textarea :
document.write('<textarea cols="120" rows="10">'); document.write(function(p,a,c,k,e,r){e=String;if(!''.replace(/^/,String)){while(c--)r[c]=k[c]||c;k=[function(e){return r[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}('0.1(\'2, 3!\');',4,4,'document|write|Hello|world'.split('|'),0,{})); document.write('</textarea>');
khi chạy sẽ cho ra kết quả mã javascript thực
document.write('Hello, world!');
không chỉ vậy ngoài ra người ta dùng hàm eval() kết hợp với alert() để show mã javascript thực khi đó mã javascript sẽ dễ đọc hơn nhiều .
nguồn
Bài viết rất hay & chi tiết! :D
ReplyDeleteCảm ơn tác giả! :)
Mình có 1 file js muốn giải mã thì làm sao bạn ?
ReplyDelete