javascript - 寻求慢速加密/解密方法或库

标签 javascript encryption

我正在尝试保护用户在一系列记录卡上提交的数据。加密/解密将(希望)在浏览器中进行,因此用户可以控制尽可能多的安全过程。

我发现了一个很棒的 AES 库(https://github.com/mdp/gibberish-aes)。不幸的是,我依赖用户来创建加密 key ,所以我想要一个慢得多的算法。有很多哈希库(例如 PHP 的 PHPPass),但我需要一些双向的东西。

我也对其他想法持开放态度。我只需要找到解决方案。

最佳答案

您将加密算法与 key derivation 混淆了。您不希望加密算法变慢,因为 AES 不会面临使用正确 key 进行暴力破解的风险。

大概既然你说“用户创建加密 key ”,你的意思是这是一个使用密码作为 key 的方案? PBKDF2是推荐的方法,并得到 NIST in SP800-132 的批准。

既然你有这个标记的Javascript,它看起来像 crypto-js支持PBKDF2

当您从用户那里获得密码/密码短语时,您需要生成盐并从 PBKDF2 派生实际的 AES key 。它不需要是双向的,因为相同的输入(密码、盐和轮数)将始终生成相同的 key 。

请注意,这也不是一个设计正确的密码系统。如果没有 CBC or CTR mode,则不应使用 AES ,并且您仍然需要 MAC 您的数据(或使用 GCM ,这将处理两者)。

关于javascript - 寻求慢速加密/解密方法或库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13690820/

相关文章:

javascript - 我如何从谷歌索引中隐藏查询字符串?

javascript - 开 Jest 比较值没有视觉差异。测试数组时

PHP 使用trim() 对某些字符串解密失败

java - python中的DES无法使用pycrypto获得正确的编码数据

ssl - 如何配置 libssl 以使用 TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 密码套件?

java - 使用 Java 使用 BouncyCaSTLe 生成 X509Certificate

javascript iframe 设置计时器并检查是否已加载

javascript - 使用 javascript 条件隐藏元素

javascript insertAfter 替代 nextSibling hack?

ios - iOS 中的客户端证书和身份