在Node.JS中,调用JShaman的Web API接口,加密JS代码。
源码
var js_code = `
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.");
`;
var config = {
//压缩
"compact": true,
//平展控制流
"controlFlowFlattening": true,
//字符串阵列化
"stringArray": true,
//字符串加密
"stringArrayEncoding": true,
//禁用命令行输出
"disableConsoleOutput": true,
//反浏览器调试
"debugProtection": true,
//域名锁定
"domainLock": ["www.jshaman.com","www.test.com"],
//保留字
"reservedNames": ["jshaman","test"]
}
var jshaman_url = "https://www.jshaman.com:4430/submit_js_code/";
var request = require('sync-request');
(function jf(js_code, config, jshaman_url){
var res = request("POST", jshaman_url, {json:{
"js_code":js_code,
"vip_code":"your_vip_code",
"config":config
}})
var json_res = JSON.parse(res.getBody('utf8'));
if(json_res.status == 0){
console.log(json_res.content);
}else{
console.log(json_res);
}
}
)(js_code,config,jshaman_url);
注:接口可能会有变化、请以JShaman官方公布的接口信息为准。
运行效果
参数
上面的代码中,有加密参数的配置,如平展控制流、字符串阵列化,如要启用哪个功能,则给true值 ,如果不启用,则给false值。
多个文件
如果有多个js文件需要混淆加密,可以把js文件都压缩到一个zip文件里,在JShaman官网提交zip文件。但在Node.JS环境中,可以直接读取各js文件、用上面的方法提交代码,更为方便。
标签:Node,Web,code,jshaman,res,js,var,JS,true From: https://blog.51cto.com/jsjiami/6192281