javascript - 基于哈希密码加密数据

标签 javascript node.js encryption hash aes

我想使用 aes 256 位基于散列密码来加密数据。问题是像 argon2 和 bcrypt 这样的哈希会自动添加盐,所以密码每次都是不同的。有什么办法可以做到这一点吗?

这是我尝试过的示例:

const aes = require("aes256");
const argon2 = require("argon2");
const pass = process.argv[2];
const data = process.argv[3];
argon2.hash(pass).then(result => console.log(aes.encrypt(result, data));

这每次都会产生不同的输出,因此除非保存哈希值,否则无法解密数据。 (这毫无意义,因为目标是防止数据被解密)。

最佳答案

您不想对密码进行哈希处理来生成 key ——您希望从密码中派生出 key 。有一些标准方法可以做到这一点。下面是一个示例:PBKDF2 link to wikipedia 。如果您在某个库中有 aes.encrypt,那么很有可能也存在某种 key 派生。

关于javascript - 基于哈希密码加密数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47604949/

相关文章:

javascript - 如何使用一个 html5 音频播放器播放多个音频文件

javascript - Jquery 像时尚一样将项目拖到谷歌日历中的表格单元格

node.js - 具有增益控制的node.js中的Mp3音频

delphi - Indy TCP 通信和换行

java - Rails 和 Java 的通用加密算法

php - 有什么办法可以反转这个按位函数吗?

javascript - React-router:用 enzyme 在 `render` prop 内部测试

javascript - 引用对象及其后代时的 jQuery 速度

javascript - Moment JS 无法识别 ISO 8601 日期

javascript - TypeError : firebase. 存储不是函数