JavaScript保護(hù)密鑰的方法詳解
在前端js編程中,如果涉及到加密通信、加密算法,經(jīng)常會(huì)用到密鑰。
但密鑰,很容易暴露。 暴露原因:js代碼透明,在瀏覽器中可以查看源碼,從中找到密鑰。
例如,下面的代碼中,變量key是密鑰:

如何保護(hù)源碼中的密鑰呢?
很多時(shí)候,人們認(rèn)為需要對(duì)密鑰字符串進(jìn)行加密。其實(shí)更重要的是對(duì)存儲(chǔ)密鑰的變量進(jìn)行加密。
加密了密鑰變量,使變量難以找到,才更能保護(hù)密鑰本身。
順著這個(gè)思路,下面給出一個(gè)不錯(cuò)的密鑰的保護(hù)方法:
還是以上面的代碼為例,
首先,用到j(luò)sfuck:
https://www.jshaman.com/tools/jsfuck.html
將代碼中的密鑰定義整體,用jsfuck加密:
var key = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

加密后得到一串奇怪的字符,這是將變量“key ”以及密鑰字符“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”隱藏了起來(lái)。

注意:加密時(shí)需要選中“在父作用域中運(yùn)行”,選中之后,key 變量的定義雖然不存在,但變量key是可用的?。ㄟ@點(diǎn)很神奇)。也就是雖然代碼中沒(méi)有定義這個(gè)變量,但這個(gè)變量存在,且可用。而且它存儲(chǔ)的就是密鑰!

用加密后的代碼替換掉原來(lái)的代碼,變成如下形式:

運(yùn)行效果:

即時(shí)他人拿走代碼去調(diào)試,也會(huì)顯示變量key未定義,如下圖所示:

但,這時(shí)候還不足夠安全,還能更安全。
將整體JS代碼,再用JS加密工具:JShaman,進(jìn)行混淆加密:
https://www.jshaman.com

然后得到更安全、更難調(diào)試分析的JS代碼,這時(shí)密鑰就變的更安全了:

注:用ajax等異步傳遞密鑰時(shí),也可以使用這個(gè)辦法,也能很好的隱藏密鑰。
用jsfuck+jshaman保護(hù)JS中的密鑰,你學(xué)會(huì)了嗎?
到此這篇關(guān)于JavaScript保護(hù)密鑰的方法詳解的文章就介紹到這了,更多相關(guān)JavaScript保護(hù)密鑰內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MUI頂部選項(xiàng)卡的用法(tab-top-webview-main)詳解
最近用MUI做手機(jī)app應(yīng)用的時(shí)候,遇到的小bug,這里小編給大家分享MUI頂部選項(xiàng)卡的用法(tab-top-webview-main)詳解,感興趣的朋友一起看看吧2017-10-10
使用JavaScript實(shí)現(xiàn)alert的實(shí)例代碼
本文通過(guò)實(shí)例代碼給大家介紹了js實(shí)現(xiàn)alert的方法,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的的朋友參考下吧2017-07-07
js 方法實(shí)現(xiàn)返回多個(gè)數(shù)據(jù)的代碼
2009-04-04
JS解決Date對(duì)象在IOS中的“大坑” 以及時(shí)間格式兼容問(wèn)題
這篇文章主要介紹了JS解決Date對(duì)象在IOS中的“大坑” 以及時(shí)間格式兼容問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10
JavaScript實(shí)現(xiàn)的開關(guān)燈泡點(diǎn)擊切換特效示例
這篇文章主要介紹了JavaScript實(shí)現(xiàn)的開關(guān)燈泡點(diǎn)擊切換特效,涉及javascript事件響應(yīng)及頁(yè)面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2019-07-07
bootstrap模態(tài)框跳轉(zhuǎn)到當(dāng)前模板頁(yè)面 框消失了而背景存在問(wèn)題的解決方法
這篇文章主要介紹了bootstrap模態(tài)框跳轉(zhuǎn)到當(dāng)前模板頁(yè)面,框消失了,而背景依然存在問(wèn)題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-12-12
JS彈出層遮罩,隱藏背景頁(yè)面滾動(dòng)條細(xì)節(jié)優(yōu)化分析
下面小編就為大家?guī)?lái)一篇JS彈出層遮罩,隱藏背景頁(yè)面滾動(dòng)條細(xì)節(jié)優(yōu)化分析。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考2016-04-04
JavaScript html5 canvas實(shí)現(xiàn)圖片上畫超鏈接
這篇文章主要為大家詳細(xì)介紹了JavaScript html5 canvas實(shí)現(xiàn)圖片上畫超鏈接,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-10-10

