如何保护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代码得到了保护,人类很难读取,即可不逆,起码绝大多数不可逆,可以有效的起到保护代码的做用。而机器运行即不受影响,可以像保护之前一样使用。