Perl摘要Bcrypt,生成正确的哈希

Perl摘要Bcrypt,生成正确的哈希,perl,bcrypt,Perl,Bcrypt,我编写了一个生成Bcrypt哈希的测试程序。这个散列稍后需要由PHP后端验证 这是我的perl代码: use Digest; #use Data::Entropy::Algorithms qw(rand_bits); #my $bcrypt = Digest->new('Bcrypt', cost=>10, salt=>rand_bits(16*8)); my $bcrypt = Digest->new('Bcrypt', cost=>10, salt=>

我编写了一个生成Bcrypt哈希的测试程序。这个散列稍后需要由PHP后端验证

这是我的perl代码:

use Digest;
#use Data::Entropy::Algorithms qw(rand_bits);


#my $bcrypt = Digest->new('Bcrypt', cost=>10, salt=>rand_bits(16*8));
my $bcrypt = Digest->new('Bcrypt', cost=>10, salt=>'1111111111111111');
my $settings = $bcrypt->settings(); # save for later checks.
my $pass_hash = $bcrypt->add('bob')->b64digest;
print $settings.$pass_hash."\n";
这张照片

$2a$10$KRCvKRCvKRCvKRCvKRCvKOoFxCE1d/OZTKQqhet3bKOq6ZVIACXBU
如果我使用在线bcrypt工具,如


有人能指出错误吗?谢谢。

解决了这个问题。我必须使用
bcrypt\u b64 digest
而不是
b64 digest
。我希望perl文档能够更清楚地说明需要在哪些方面使用它,以便其他bcrypt实现能够“获得它”

与“摘要”相同,但将返回使用 常用于bcrypt的字母表。返回值的长度 字符串将为31,并且仅包含范围中的字符 “0”…'9'、“A”…'Z'、“A”…'Z'、“+”和“.”

返回的base64编码字符串未填充为4的倍数 字节长。注:这是bcrypt自己的非标准base64字母表, 它与标准MIME base64编码不兼容


解决了问题。我必须使用
bcrypt\u b64 digest
而不是
b64 digest
。我希望perl文档能够更清楚地说明需要在哪些方面使用它,以便其他bcrypt实现能够“获得它”

与“摘要”相同,但将返回使用 常用于bcrypt的字母表。返回值的长度 字符串将为31,并且仅包含范围中的字符 “0”…'9'、“A”…'Z'、“A”…'Z'、“+”和“.”

返回的base64编码字符串未填充为4的倍数 字节长。注:这是bcrypt自己的非标准base64字母表, 它与标准MIME base64编码不兼容


你试过不加盐吗?谢谢,看起来我用错功能了。谁知道呢。记下。是的,谢谢你。我读过了,以后可能会迁移到那个模块。你有没有尝试过不用盐分?谢谢,看起来我使用了错误的函数。谁知道呢。记下。是的,谢谢你。我读过,将来可能会迁移到该模块。
my $pass_hash = $bcrypt->add('bob')->bcrypt_b64digest;