我不知道Perl,我需要一些帮助。我需要加密一个值并在Base64中表示它。我需要修改这些现有的代码
my $SHAObject = Digest::SHA->new('sha1');
$Self->{EncodeObject}->EncodeOutput( \$Pw );
$SHAObject->add($Pw);
$CryptedPw = $SHAObject->hexdigest();
$Self->{EncodeObject}->EncodeInput( \$CryptedPw );
我尝试用encode_base64
替换hexdigest my $SHAObject = Digest::SHA->new('sha1');
$Self->{EncodeObject}->EncodeOutput( \$Pw );
$SHAObject->add($Pw);
$CryptedPw = $SHAObject->encode_Base64();
$Self->{EncodeObject}->EncodeInput( \$CryptedPw );
但它不起作用..
有人可以帮帮我吗?提前谢谢你吉安卡洛
答案 0 :(得分:3)
Digest::SHA
没有encode_Base64
方法,因此可能出现了错误。
如果您参考文档(对于OO操作),您可以:
$digest = $sha->digest; # compute digest
$digest = $sha->hexdigest;
$digest = $sha->b64digest;
我认为这是你最后想要的,但不能肯定地说。
答案 1 :(得分:0)
您可以尝试https://metacpan.org/pod/Crypt::Digest::SHA1
use Crypt::Digest::SHA1 'sha1_b64';
$CryptedPw = sha1_b64($Pw);