相关疑难解决方法(0)

crypto.pbkdf2导出IV和密钥到crypto.createCipheriv的正确设置是什么?

在node.js的应用程序中,我使用crypto模块进行对称加密/解密.

我使用的是AES-256-CTR.我最初假设crypto.createCipher将"正常工作"和"手动"的细节.现在我正在阅读文档:

注意:createCipher使用OpenSSL函数EVP_BytesToKey派生密钥,摘要算法设置为MD5,一次迭代,无盐.缺少盐允许字典攻击,因为相同的密码始终创建相同的密钥.低迭代计数和非加密安全散列算法允许非常快速地测试密码.

根据OpenSSL建议使用pbkdf2而不是EVP_BytesToKey,建议您使用crypto.pbkdf2派生密钥并自行定义,然后使用createCipheriv()创建密码流.

好吧,我可以自己推导出IV和键.

但是,我不确定,这样做的正确和推荐方法是什么 - 我应该分别对不同的盐进行密钥推导吗?我应该进行一次密钥推导,然后将其减半吗?对于这个特定的用例,我应该使用盐吗?我应该随机生成盐并将其与数据一起保存吗?

encryption cryptography aes pbkdf2 node.js

5
推荐指数
1
解决办法
2108
查看次数

标签 统计

aes ×1

cryptography ×1

encryption ×1

node.js ×1

pbkdf2 ×1