【发布时间】:2017-06-08 13:21:22
【问题描述】:
当使用 crypto js TripleDES 进行加密时,我注意到所有要加密的字符串长度都很短,例如“01”、“111”、“20”,但是对于像“5000021234567890000”这样的长字符串,输出是' t 正确或不是我期望的值。 例如对于这个 "5000021234567890000",我期待这个:"HctDaKc/U9avOwZMSS5mEi62kfojDHA4" 但我得到了这个:HctDaKc/ U9bNnFy6eZHqHj3SemorJxQM.
这是我找到并用于加密的代码
let key = CryptoJS.MD5(enckey);
key.words[4] = key.words[0];
key.words[5] = key.words[1];
let iv = CryptoJS.lib.WordArray.create(64/8);
CryptoJS.TripleDES.encrypt("5000021234567890000", key, {iv: iv});
非常感谢您的帮助。
【问题讨论】:
-
不要在新工作中使用 3DES,它不再被认为是安全的,而是使用 AES(高级加密标准)。
-
谢谢,但我无权更改加密方式,我只是按照要求进行
-
给定少量代码的最佳猜测:一个实例正在使用 CBC 模式,另一个正在使用 ECB 模式,我经常看到错误地为 ECB 模式提供了 IV。明确提供加密模式总是更好。此外,您似乎正在使用在大多数情况下已弃用的双键 3DES。
-
我对密码学一无所知,如何指定模式,CBC或ECB
标签: javascript node.js encryption cryptojs tripledes