its*_*sme 7 javascript passwords cryptography bcrypt node.js
我实际上是使用bcrypt模块来散列和比较散列密码.
我想要做的是删除bcrypt模块并使用默认crypto库进行散列和比较密码.
这可能吗?
这比使用安全node-bcrypt吗?
你有关于怎么做的任何示例/教程/ doc/link?
或者我实际上是这样做的:
bcrypt.hash(string,secret_key)
bcrypt.compare(string,string,secret_key);
Run Code Online (Sandbox Code Playgroud)
如果可能的话,我只想用加密复制它:
crypto.hash(string,secret_key)
crypto.compare(string,string,secret_key);
Run Code Online (Sandbox Code Playgroud)
您可以使用加密库中的pbkdf2进行哈希:
crypto.pbkdf2(password, salt, iterations, keylen, digest, callback)
Run Code Online (Sandbox Code Playgroud)
示例实施:
const crypto = require('crypto');
crypto.pbkdf2('secret', 'salt', 100000, 512, 'sha512', (err, derivedKey) => {
if (err) throw err;
console.log(derivedKey.toString('hex')); // '3745e48...aa39b34'
});
Run Code Online (Sandbox Code Playgroud)
这里是参考:https://nodejs.org/api/crypto.html#crypto_crypto_pbkdf2_password_salt_iterations_keylen_digest_callback
它使用HMAC摘要算法(如sha512)从给定的密码,salt和迭代中导出给定长度的密钥.Pbkdf2具有类似bcrypt的慢速特征.使用PBKDF2,bcrypt或scrypt,攻击者每秒只能进行几千次猜测(或更少,具体取决于配置).
| 归档时间: |
|
| 查看次数: |
9066 次 |
| 最近记录: |