Javascript 基于哈希密码加密数据

Javascript 基于哈希密码加密数据,javascript,node.js,encryption,hash,aes,Javascript,Node.js,Encryption,Hash,Aes,我想使用aes 256位加密基于散列密码的数据。问题是像argon2和bcrypt这样的散列会自动添加一个salt,因此每次密码都不同。有没有办法做到这一点 下面是我尝试的一个例子: const aes = require("aes256"); const argon2 = require("argon2"); const pass = process.argv[2]; const data = process.argv[3]; argon2.hash(pass).then(result =&g

我想使用aes 256位加密基于散列密码的数据。问题是像argon2和bcrypt这样的散列会自动添加一个salt,因此每次密码都不同。有没有办法做到这一点

下面是我尝试的一个例子:

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));

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

您不希望通过散列密码来生成密钥,而是希望从密码派生密钥。有标准的方法可以做到这一点。这里有一个例子:PBKDF2。如果您在某个库中有aes.encrypt,则很有可能存在某种密钥派生。

您不希望通过散列密码来生成密钥,而是希望从密码派生密钥。有标准的方法可以做到这一点。这里有一个例子:PBKDF2。如果在某个库中有aes.encrypt,很有可能存在某种密钥派生。

您想基于哈希密码加密数据并将其用作salt是吗?@rahusingh我想使用哈希密码作为加密密钥加密数据。您想基于哈希密码加密数据并将其用作salt是吗?@rahusingh I要使用哈希密码作为加密密钥加密数据。