JavaScript保护密钥的方法详解
在前端js编程中,如果涉及到加密通信、加密算法,经常会用到密钥。
但密钥,很容易暴露。 暴露原因:js代码透明,在浏览器中可以查看源码,从中找到密钥。
例如,下面的代码中,变量key是密钥:

如何保护源码中的密钥呢?
很多时候,人们认为需要对密钥字符串进行加密。其实更重要的是对存储密钥的变量进行加密。
加密了密钥变量,使变量难以找到,才更能保护密钥本身。
顺着这个思路,下面给出一个不错的密钥的保护方法:
还是以上面的代码为例,
首先,用到jsfuck:
https://www.jshaman.com/tools/jsfuck.html
将代码中的密钥定义整体,用jsfuck加密:
var key = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";

加密后得到一串奇怪的字符,这是将变量“key ”以及密钥字符“0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ”隐藏了起来。

注意:加密时需要选中“在父作用域中运行”,选中之后,key 变量的定义虽然不存在,但变量key是可用的!(这点很神奇)。也就是虽然代码中没有定义这个变量,但这个变量存在,且可用。而且它存储的就是密钥!

用加密后的代码替换掉原来的代码,变成如下形式:

运行效果:

即时他人拿走代码去调试,也会显示变量key未定义,如下图所示:

但,这时候还不足够安全,还能更安全。
将整体JS代码,再用JS加密工具:JShaman,进行混淆加密:
https://www.jshaman.com

然后得到更安全、更难调试分析的JS代码,这时密钥就变的更安全了:

注:用ajax等异步传递密钥时,也可以使用这个办法,也能很好的隐藏密钥。
用jsfuck+jshaman保护JS中的密钥,你学会了吗?
到此这篇关于JavaScript保护密钥的方法详解的文章就介绍到这了,更多相关JavaScript保护密钥内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
MUI顶部选项卡的用法(tab-top-webview-main)详解
最近用MUI做手机app应用的时候,遇到的小bug,这里小编给大家分享MUI顶部选项卡的用法(tab-top-webview-main)详解,感兴趣的朋友一起看看吧2017-10-10
JS解决Date对象在IOS中的“大坑” 以及时间格式兼容问题
这篇文章主要介绍了JS解决Date对象在IOS中的“大坑” 以及时间格式兼容问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-10-10
bootstrap模态框跳转到当前模板页面 框消失了而背景存在问题的解决方法
这篇文章主要介绍了bootstrap模态框跳转到当前模板页面,框消失了,而背景依然存在问题的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2016-12-12
JavaScript html5 canvas实现图片上画超链接
这篇文章主要为大家详细介绍了JavaScript html5 canvas实现图片上画超链接,具有一定的参考价值,感兴趣的小伙伴们可以参考一下2017-10-10


最新评论