如果我更改我的服务器 bcrypt 可以记住加盐和解密密码,那该怎么做?
If I change my server bcrypt can remember salt and decrypt Password,How can do that?
我想将我的程序部署到另一台服务器上。我的脚本能否正确解密数据库中客户的所有密码?
//old server
const bcrypt = require("bcrypt");
const salt = bcrypt.genSalt();
password = bcrypt.hash("password", salt);
//new server
const auth = bcrypt.compare(password, "password")
BCrypt 如何使用随机生成的变量盐来解密密码?
BCrypt 哈希以两种形式之一存储。
更常见的是 Modular Crypt Format,形式为...
y$kV7kssmFuFOydBewIp9ele8GMkWGDPpte6jGGDAabpsBmxtzWxfZW
其中:
$
是分隔符
2
表示算法为BCrypt
y
是 BCrypt 的版本
- 10 是成本
kV7kssmFuFOydBewIp9ele
是盐
8GMkWGDPpte6jGGDAabpsBmxtzWxfZW
是散列。
一个更现代的替代方案是 PHC string format,这使得哪些部分对应于哪些值更加明显:
$bcrypt$v=98$r=10$cIF1Ev2ATA6/iYv4kddXCQ$qcrDoGjsiB2eLq1/vCZWiAZ8bEs4+Qs
在这两种情况下,保存到数据库中的字符串是完全可移植的,并且包含比较候选密码所需的一切:散列、盐、成本、算法名称和算法版本。
我想将我的程序部署到另一台服务器上。我的脚本能否正确解密数据库中客户的所有密码?
//old server
const bcrypt = require("bcrypt");
const salt = bcrypt.genSalt();
password = bcrypt.hash("password", salt);
//new server
const auth = bcrypt.compare(password, "password")
BCrypt 如何使用随机生成的变量盐来解密密码?
BCrypt 哈希以两种形式之一存储。
更常见的是 Modular Crypt Format,形式为...
y$kV7kssmFuFOydBewIp9ele8GMkWGDPpte6jGGDAabpsBmxtzWxfZW
其中:
$
是分隔符2
表示算法为BCrypty
是 BCrypt 的版本
- 10 是成本
kV7kssmFuFOydBewIp9ele
是盐8GMkWGDPpte6jGGDAabpsBmxtzWxfZW
是散列。
一个更现代的替代方案是 PHC string format,这使得哪些部分对应于哪些值更加明显:
$bcrypt$v=98$r=10$cIF1Ev2ATA6/iYv4kddXCQ$qcrDoGjsiB2eLq1/vCZWiAZ8bEs4+Qs
在这两种情况下,保存到数据库中的字符串是完全可移植的,并且包含比较候选密码所需的一切:散列、盐、成本、算法名称和算法版本。