在Node.JS中調用JShaman接口,實現JS代碼加密。
使用axIOS庫實現https的post請求,代碼如下:
const axios = require("axios");const jshamanConfig = { //源碼 "js_code": 'function get_copyright(){ var domain = "中文"; var from_year = 2017; var copyright = "(c)" + from_year + "-" + (new Date).getFullYear() + "," + domain; return copyright;}console.log(get_copyright());', //vip碼 "vip_code": "free",};axios.post("https://www.jshaman.com:4430/submit_js_code", jshamanConfig).then(function (res) { if (res.status == 200) { if (res.data && res.data.status == 0) { console.log("----請求成功----"); console.log(res.data.content) } else { console.error(res.data.message); } } else { console.error(res.status); } }).catch(function (error) { console.error(error); });
運行后,得到了加密的JS代碼,如下圖:
上面,使用的是JShaman的免費接口,如同在官網使用免費加密效果一樣:
如要配置參數,則需寫入自己在JShaman的VIP碼,帶參數可啟用更多保護選項,加密效果會更好。
代碼如下:
const axios = require("axios");const jshamanConfig = {//源碼"js_code": 'function get_copyright(){ var domain = "中文"; var from_year = 2017; var copyright = "(c)" + from_year + "-" + (new Date).getFullYear() + "," + domain; return copyright;}console.log(get_copyright());',"config":{// 壓縮"compact": true,//平展控制流"controlFlowFlattening": true,//僵尸代碼"deadCodeInjection": true,//字符串陣列化"stringArray": true,//字符串加密"stringArrayEncoding": true,//禁用命令行輸出"disableConsoleOutput": false,//反瀏覽器調試"debugProtection": true,//時間限定"time_range": false,"time_start": "","time_end": "",// 域名鎖定"domainLock": [],// 保留字"reservedNames": []},//JShaman vip碼"vip_code": "vip碼",};axios.post("https://www.jshaman.com:4430/submit_js_code", jshamanConfig).then(function (res) {if (res.status == 200) {if (res.data && res.data.status == 0) {console.log("----請求成功----");console.log(res.data.content)} else {console.error(res.data.message);}} else {console.error(res.status);}}).catch(function (error) {console.error(error);});
運行效果: