【发布时间】:2014-11-02 07:04:43
【问题描述】:
为什么具有相同秘密短语和消息的 AES 每次返回不同的值? 假设我们对每个 PBKDF2 函数都有相同的盐(我知道这很糟糕,这只是一个例子)。假设我们每次都输入相同的密码。
var salt = "5J07c/a7+2bf=15$56aQc75Ub55=60&0";
console.log(req.body.password);
console.log(salt);
var PBKDF2hash = crypto.PBKDF2(req.body.password, salt, { keySize: 256/32 });
console.log(PBKDF2hash.toString());
var AEScipher = crypto.AES.encrypt(req.body.password, PBKDF2hash);
console.log(AEScipher.toString());
在这种情况下,我们收到相同的 PBKDF2hash(如预期的那样),但任何时候 AES 提供不同的芯片。
zz
5J07c/a7+2bf=15$56aQc75Ub55=60&0
3949676666ed318087a52896be98dc80b0cad99f4b662d48565283f71a2ace80
U2FsdGVkX19O1pqgL+V6Chk8NdiJQhf15N1uEfYXgxw=
zz
5J07c/a7+2bf=15$56aQc75Ub55=60&0
3949676666ed318087a52896be98dc80b0cad99f4b662d48565283f71a2ace80
U2FsdGVkX1/C7GAmLJvfFAHyOYj7LKZI5278/ZoeA3M=
These 回答说,盐是不同的,而 cbc 模式很重要。在我的情况下,盐是恒定的,我已经切换到其他模式。每次输出仍然不同。
【问题讨论】:
标签: javascript encryption aes pbkdf2