【问题标题】:Encrypt Data Based on Hashed Password基于散列密码加密数据
【发布时间】:2018-05-16 05:47:28
【问题描述】:

我想使用 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));

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

【问题讨论】:

  • 您想根据您的哈希密码加密数据并将其用作盐,是吗?
  • @RahulSingh 我想使用散列密码作为加密密钥来加密数据。

标签: javascript node.js encryption hash aes


【解决方案1】:

您不想散列密码来生成密钥——您想从密码中派生密钥。有标准的方法可以做到这一点。这是一个示例:PBKDF2 link to wikipedia。如果您在某个库中有 aes.encrypt,则很有可能也存在某种密钥派生。

【讨论】:

    猜你喜欢
    • 2011-02-18
    • 1970-01-01
    • 2011-06-23
    • 2018-01-20
    • 1970-01-01
    • 2016-08-21
    • 1970-01-01
    • 1970-01-01
    • 2010-09-24
    相关资源
    最近更新 更多