JavaScript保護(hù)密鑰的方法詳解
在前端js編程中,如果涉及到加密通信、加密算法,經(jīng)常會用到密鑰。
但密鑰,很容易暴露。 暴露原因:js代碼透明,在瀏覽器中可以查看源碼,從中找到密鑰。
例如,下面的代碼中,變量key是密鑰:
如何保護(hù)源碼中的密鑰呢?
很多時候,人們認(rèn)為需要對密鑰字符串進(jìn)行加密。其實更重要的是對存儲密鑰的變量進(jìn)行加密。
加密了密鑰變量,使變量難以找到,才更能保護(hù)密鑰本身。
順著這個思路,下面給出一個不錯的密鑰的保護(hù)方法:
還是以上面的代碼為例,
首先,用到j(luò)sfuck:
https://www.jshaman.com/tools/jsfuck.html
將代碼中的密鑰定義整體,用jsfuck加密:
var key = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
加密后得到一串奇怪的字符,這是將變量“key ”以及密鑰字符“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”隱藏了起來。
注意:加密時需要選中“在父作用域中運行”,選中之后,key 變量的定義雖然不存在,但變量key是可用的!(這點很神奇)。也就是雖然代碼中沒有定義這個變量,但這個變量存在,且可用。而且它存儲的就是密鑰!
用加密后的代碼替換掉原來的代碼,變成如下形式:
運行效果:
即時他人拿走代碼去調(diào)試,也會顯示變量key未定義,如下圖所示:
但,這時候還不足夠安全,還能更安全。
將整體JS代碼,再用JS加密工具:JShaman,進(jìn)行混淆加密:
https://www.jshaman.com
然后得到更安全、更難調(diào)試分析的JS代碼,這時密鑰就變的更安全了:
注:用ajax等異步傳遞密鑰時,也可以使用這個辦法,也能很好的隱藏密鑰。
用jsfuck+jshaman保護(hù)JS中的密鑰,你學(xué)會了嗎?
到此這篇關(guān)于JavaScript保護(hù)密鑰的方法詳解的文章就介紹到這了,更多相關(guān)JavaScript保護(hù)密鑰內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Javascript Cookie讀寫刪除操作的函數(shù)
Javascript Cookie讀寫刪除操作的函數(shù)代碼,需要操作cookies的朋友可以參考下。2010-03-03js 創(chuàng)建對象的多種方式與優(yōu)缺點小結(jié)
這篇文章主要介紹了js 創(chuàng)建對象的多種方式與優(yōu)缺點,幫助大家更好的理解和學(xué)習(xí)使用JavaScript,感興趣的朋友可以了解下2021-03-03javascript中使用replaceAll()函數(shù)實現(xiàn)字符替換的方法
第一次發(fā)現(xiàn)JavaScript中replace()?方法如果直接用str.replace("-","!")?只會替換第一個匹配的字符.2010-12-12Javascript實現(xiàn)通過選擇周數(shù)顯示開始日和結(jié)束日的實現(xiàn)代碼
這篇文章主要介紹了Javascript實現(xiàn)通過選擇周數(shù)顯示開始日和結(jié)束日的實例代碼的相關(guān)資料,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-05-05