gpt4 book ai didi

perl - 无法解码!无效的 Base58 字符!

转载 作者:行者123 更新时间:2023-12-05 07:39:01 29 4
gpt4 key购买 nike

我想跑 base58perl.pl在我的终端中使用以下命令:

perl base58perl.pl

但我收到以下错误:

Cannot decode! Invalid Base58 Character(s)!

代码如下:

my $fileSrc = 'base58.txt';
open my $fhSrc, $fileSrc or die "Could not open $fileSrc: $!";

my $fileDest = 'hex.txt';
open( my $fhDest, '>>', $fileDest) or die "Could not open file $fileDest: $!";

while ( my $base58_encoded_address = <$fhSrc >) {
my $binary_address = decodebase58tohex($base58_encoded_address);
say $fhDest $binary_address;
}

close $fhSrc;
close $fhDest;

base58.txt的内容是一个base58形式的BTC地址列表。

我也试过

chmod a+x base58perl.pl
perl base58perl.pl

base58.txt 内容:

1E5PBfSaFawBy1RjBHkS6FDtCwXkYSsVTo
1DCgptTS2uY2occbVdW1qcVT72T75RXbyg
1CUNEBjYrCn2y1SdiUMohaKUi4wpP326Lb

我仍然遇到同样的错误。

最佳答案

该错误消息来自您链接的代码中的 unbase58 函数。

die "Cannot Decode! Invalid Base58 Character(s)!\n" unless $bitcoin_address =~ /^[1-9A-HJ-NP-Za-km-z]*$/;

该行检查输入是否仅包含字符组 [1-9A-HJ-NP-Za-km-z] 的字符。由于您的输入确实如此,它一定不喜欢其他内容。

我的猜测是它不喜欢行尾的换行符。你需要 chomp在将值传递给 decodebase58tohex 之前关闭它们。

while( my $base58_encoded_address = <$fhSrc>)  {   
chomp $base58_encoded_address;
my $binary_address = decodebase58tohex($base58_encoded_address);
say $fhDest $binary_address;
}

关于perl - 无法解码!无效的 Base58 字符!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47435250/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com