所以我希望使用SHA-512和PBKDF2来实现
Bitcoin BIP-039.我已经设法确定SHA-512属于SHA2但是当我指定为哈希函数时,即使使用64字节输出,它仍然报告为使用SHA-256.我错过了什么吗?我尝试在hash_class中添加512,但是没有用.
#!/usr/bin/perl # use Crypt::PBKDF2; my $sentence="Hellothere"; my $salt="mnemonic"; my $pbkdf2 = Crypt::PBKDF2->new( hash_class => 'HMACSHA2',# iterations => 2048,# output_len => 64,# ); my $hash = $pbkdf2->generate($sentence,$salt); print "$hash\n";
给
{X-PBKDF2}HMACSHA2+256:AAAIAA:bW5lbW9uaWM=:NLw67sZbhQYsPhrEYm9e5ruslS6/ivK1vDfICtCN07rb7RuBkQxAoZIyTG7sTmsob30JwoP64Fvzpjx6Cqc+KQ==
解决方法
将此传递给new()调用有效.
hash_args=>{sha_size => 512}
{X-PBKDF2}HMACSHA2+512:AAAIAA:bW5lbW9uaWM=:WG00S/OSlPeYJ/HWeIPkVdQHpSXnpzG0Ixb+j70pbgDgdCAemPBLbjYBbcUtnfSS2dzMJng73eAlGSSnDi+dDQ==