【发布时间】:2020-04-05 16:47:03
【问题描述】:
正如answer 中提到的,我可以使用 ECB 模式将转换后的值反转回纯文本,而不仅仅是将其与另一个散列值进行比较。
但是,使用下面的代码 sn-p:
const x = CryptoJS.AES.encrypt('abc', '123', { mode: CryptoJS.mode.ECB }).toString()
const y = CryptoJS.AES.encrypt('abc', '123', { mode: CryptoJS.mode.ECB }).toString()
console.log(x, y, x === y)
<script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/4.0.0/crypto-js.min.js"></script>
我明白了:
U2FsdGVkX19blKXDRXfdgXyviCrZtouB0cPcJPoR/cQ= U2FsdGVkX1+1AwWqKWntLVkh7DtiZxPDYCDNsjmc8LM= false
我做错了吗?有没有办法达到预期的效果?
【问题讨论】:
-
读取the CryptoJS documentation. 加密的结果是一个对象。您只是将整个对象转换为字符串,这没有任何意义。
-
@Pointy 你是什么意思?我在库的readme中提到的对象上调用
toString方法@ -
您当然可以这样做,但对象详细信息包含您问题的答案。加密过程涉及随机数。
标签: javascript cryptojs