我目前正在尝试使用NodeJS加密静态数据,我已经在Node API文档中阅读到createCipher不是recommended


createCipher仍然是加密静态数据的可行且安全的方法吗?是否应认为此方法已弃用?
一个消息灵通的攻击者潜在地解密数据是否可行?

使用createCipheriv的解决方案是否应该总是比createCipher更受青睐?

任何其他细节或建议表示赞赏。

最佳答案



尽管当然不建议使用不建议使用的API调用,但是可以使用createCipher创建安全的系统。为此,给定的“密码”必须足够强大以承受脱机以及可能的并行攻击。为此,给定的密码必须具有足够的熵(必须足够随机)才能被猜测。例如,您可以使用密码管理器创建〜80位或更高密码。



是的,如果仅仅是因为作者已经警告过您,并且您对代码的任何评论都必须重新考虑createCipher是否仍然可行。如果该方法曾经从CryptoJS中删除(不太可能,但毕竟已被弃用),则您的代码将不再运行。

但是,如果直接使用密码作为 key ,则createCipheriv的使用将比createCipher的安全性低。您仍应使用正确的基于密码的 key 派生功能(例如PBKDF2)来派生输出 key Material -如更新的文档中所述。



在大多数情况下,您希望使用更高端的加密/解密方法,例如加密消息语法(CMS,在PKCS#7中指定),PGP或类似的高端协议(protocol)/容器格式。

如果您确实确实需要直接使用密码,则应尝试查看是否可以选择通过GCM提供的经过身份验证的加密。

关于node.js - Node.js createCipher与createCipheriv,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44031377/

10-10 19:49