如何保護js代碼呢?
對JS代碼進行混淆加密,就是js代碼保護的正確方法。
JS代碼保護有不少產品可用,有免費開源的,也有商業的。
免費的比如uglifyjs 、ob、商業的比如jscrambler、JShaman,特別值的一提的是jshaman,不但強大,而且是國產的,是具備研發能力,有核心競爭力的國內產品,
在js代碼保護領域,jscrambler是國際頂級的廠商,而國內的jshaman比它毫不遜色。
比如一段js代碼:
function NewObject(prefix){
var count=0;
this.SayHello=function(msg)
{
count++;
alert(prefix+msg);
}
this.GetCount=function()
{
return count;
}}var obj=new NewObject("Message : ");obj.SayHello("You are welcome.");
用jscrambler保護后的效果:
var _0x7fb4=["x53x61x79x48x65x6Cx6Cx6F","x47x65x74x43x6Fx75x6Ex74","x4Dx65x73x73x61x67x65x20x3Ax20","x59x6Fx75x20x61x72x65x20x77x65x6Cx63x6Fx6Dx65x2E"];function NewObject(_0x633dx2){var _0x633dx3=0;this[_0x7fb4[0]]= function(_0x633dx4){_0x633dx3++;alert(_0x633dx2+ _0x633dx4)};this[_0x7fb4[1]]= function(){return _0x633dx3}}var obj= new NewObject(_0x7fb4[2]);obj.SayHello(_0x7fb4[3])
用jshaman對這段代碼保護后的效果:
var _0xd631a=["117.","117.","68.108.122.122.104.110.108.41.51.41.","80.102.124.41.104.123.108.41.126.108.101.106.102.100.108.39."];function _0x1ffd(str,dy_key){dy_key=9;var i,k,str2="";k=str.split(".");for(i=0;i對js代碼保護有什么用呢? 可以防止代碼被他們分析、復制、盜用,也可用于很多代碼檢測場景,比如小游戲過審、小程序過審等等。 經過混淆加密之后,js代碼得到了保護,人類很難讀取,即可不逆,起碼絕大多數不可逆,可以有效的起到保護代碼的做用。而機器運行即不受影響,可以像保護之前一樣使用。