js混淆加密工具
① 如何混淆(保護)javaScript
可以使用:
Google Closure編譯器或其他第三方混淆工具
Google Closure編譯器仍在使用,並且UglifyJS可以通過節點包管理器在本地運行:npm install -g uglify-js
私有字元串數據:
將字元串值設為私有是另一個問題,而混淆並不會帶來太大好處。當然,通過將源打包成亂碼,最小的混亂,可以通過 模糊* 性 獲得輕便的安全性 。大多數情況下,查看源的是的用戶,客戶端上的字元串值是供他們使用的,因此通常不需要那種私有字元串值。
如果確實擁有一個不希望用戶看到的價值,那麼將有兩個選擇。首先,可以進行某種加密,該加密在頁面載入時解密。那可能是最安全的選擇之一,但也可能是很多不必要的工作。可能可以對一些字元串值進行base64編碼,這會更容易,但是真正想要這些字元串值的人可以輕松地對其進行解碼 。加密是真正阻止任何人訪問的數據的唯一方法,大多數人發現加密比他們需要的安全性更高。
② js代碼混淆 以及 混淆後如何使用
js反混淆需要藉助第三方工具:
1、在網路搜索js混淆還原
2、把要還原的代碼放在第一個文本框,點擊js解混淆就可以了。
結果在下面顯示
③ 請問這個js是由什麼方式加密混淆的如何解密
前面的\x只是16進制編解碼就好
function decode(str){
return str.replace(/\\x(\w{2})/g,function(_,$1){ return String.fromCharCode(parseInt($1,16)) });
}
後面的使用壓縮混淆工具,壓縮了空格,簡化了變數名.是可以格式化回去的,但是變數你想還原到原來的有含義的命名,是不可能的了
④ 關於node.js 混淆,有沒有辦法
伺服器端的也要混淆嗎?我以前做前段的混淆都是用的一個java的jsa,感覺壓縮率和混淆程度都不錯,兼容性也好。但是這東西也有些問題,我自己下載到本地無法正常運行,只能用那個網頁版本的一個一個手動的來混淆
1. uglifyjs混餚貌似只能針對局域成員,一旦跨引用就不能了。
2. 我還研究了node的vm模塊,缺點是,沙盒配置很復雜,跨require引用時尤其
3. 還有類似eval的執行(也就是字元串注入執行),缺點是,一旦eval的加密後解密的明文,任何人可以console.log輸出。
4. 一個台灣人寫的叫做npk的模塊,跨目錄require時會有問題
⑤ 用java實現js混淆器
簡單的思路就是把所有的回車空格換行等一應格式全部去掉
然後把所有變數名字全都替換成無任何意義的簡單字母和符號
這樣可以讓大多數人看的很頭大了