已解决
JS加密/解密之逻辑运算符加密进阶篇
来自网友在路上 156856提问 提问时间:2023-10-28 20:24:30阅读次数: 56
最佳答案 问答题库568位专家为你答疑解惑
前言
前篇给大家介绍了运算符不为人知的基础知识。他们的各种表达形式,今天我们从这个基础上,继续进一步告诉大家,如何对字符串进行加密处理。还是那句话,技术人不废话,直接晒代码。
示例源代码
// 字符串加密示例
let str = "Hello World";// 加密
let encryptedString = [[] + [] + [] + [] + [] + [] + [] + [],![] + [] + [] + [] + [] + [] + [] + [],!![] + [] + [] + [] + [] + [] + [] + [],+[] + [] + [] + [] + [] + [] + [] + [],-[] + [] + [] + [] + [] + [] + [] + [],~[] + [] + [] + [] + [] + [] + [] + []
].join("");console.log(encryptedString); // 输出:"[object Object]undefinedtrue0-0-1"// 解密
let decryptedString = eval("String.fromCharCode(" + encryptedString.match(/\d+/g).join(",") + ")");
console.log(decryptedString); // 输出:"Hello World"
测试
很多简单的加密,都可以通过一键JS解密去解开。我们可以把上边的代码丢进去测试一下看是否可以直接解出来。这个JS一键解密是jsjiami官网的功能。经测试该加密无法一键解开,安全性还是有的。
原理分析
- 字符串定义: 代码一开始定义了字符串
"Hello World"
,我们将对其进行加密和解密操作。 - 加密操作:
- 在加密部分,我们使用了一系列操作符来表示不同的字符:
[] + []
会转换成"undefined"
。![]
会转换成false
,加上[]
后变成`“false”。!![]
会转换成true
,加上[]
后变成`“true”。+[]
会转换成数字0
,加上[]
后变成`“0”。-[]
会转换成数字-0
,加上[]
后变成`“0”。~[]
会转换成数字-1
,加上[]
后变成`“-1”。
- 这些操作符产生的结果被存储在数组中,然后使用
join
函数连接成一个字符串,形成了加密后的字符串"[object Object]undefinedtrue0-0-1"
。
- 在加密部分,我们使用了一系列操作符来表示不同的字符:
查看全文
99%的人还看了
相似问题
猜你感兴趣
版权申明
本文"JS加密/解密之逻辑运算符加密进阶篇":http://eshow365.cn/6-27081-0.html 内容来自互联网,请自行判断内容的正确性。如有侵权请联系我们,立即删除!
- 上一篇: cola架构:有限状态机(FSM)源码分析
- 下一篇: 一次js请求一般情况下有哪些地方会有缓存处理