javascript - 使用 CryptoJS 时发送 'Secret Passphrase' (key/iv)

标签 javascript encryption cryptography cryptojs

我在上传到服务器之前使用 CryptoJs 在客户端加密文件。加密和解密正在工作,但我的问题是这有多安全。在我的 JavaScript 中,我将“ secret 密码”作为参数传递给加密函数。我用于解密的也是相同的密码。那么,如果有人能够掌握这个“ secret 密码”,他们就不能轻松解密数据吗?

Crytpjs:

var encrypted = CryptoJS.AES.encrypt("Message", "Secret Passphrase");
var decrypted = CryptoJS.AES.decrypt(encrypted, "Secret Passphrase");

最佳答案

如果您的要求是对上传的文件进行加密但对服务器可见,那么您实际上应该只使用 TLS。没有理由使用其他任何东西。

如果您的要求是对上传的文件进行加密,使得服务器也无法解密它们,那么只需向用户询问密码,应用PBKDF2,然后使用结果作为 key 即可。

如果您要保留当前的代码,则应该更改一些内容。目前,您似乎正在使用 ECB 模式(您不提供 IV)。 ECB 模式不安全,不应使用。此外,您需要一种方法来确保数据在传输过程中不会被更改。您应该应用 HMAC 并将其附加到末尾。

关于javascript - 使用 CryptoJS 时发送 'Secret Passphrase' (key/iv),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41620374/

相关文章:

javascript - 如何在Reactjs上实现动态视频highchart

javascript - 如何显示接下来的三个图像单击加载更多按钮

java加密的字符串无法存储在DB中

c++ - AES 库或 C++ 代码

Crypt 返回哈希值还是摘要?

ssl - 实现 Diffie-Hellman key 交换时预主 key 不匹配

javascript - 没有 if 的简写/隐式 if() 语句

javascript - 执行用 .innerHTML 插入的 <script> 元素

javascript - "Downloading"一个计算值形式的 JavaScript

php - 在 MySQL 中存储敏感数据的最佳方式是什么?