我正在使用 Perl 开发比特币大脑钱包生成器。我无法正确完成最后一步(base58 编码)来生成私钥(导入格式)。
我找到了一个非常简单的 bash 脚本来完成这项工作,我希望将它翻译成 Perl,这样我就可以完全在 Perl 上生成密钥。
有人可以帮我将以下 bash 代码翻译成 Perl 子程序吗?
#!/bin/bash
base58=({1..9} {A..H} {J..N} {P..Z} {a..k} {m..z})
bc <<<"ibase=16; n=${1^^}; while(n>0) { n%3A ; n/=3A }" |
tac |
while read n
do echo -n ${base58[n]}
done
编辑:谢谢巴尔玛!它更接近,但不起作用。我为获得最接近的结果所做的是:
sub encode_base58sp {
my $in = shift;
my $out = '';
my @base58 = (1 .. 9, 'A' .. 'H', 'J' .. 'N', 'P' .. 'Z', 'a' .. 'k', 'm' .. 'z');
my $n = hex($in);
while ($n > 1) {
my $remain = $n % 58;
$out = $base58[$remain] . $out;
$n /= 58;
}
return $out;
}
这样我就可以得到前 9 个字符,但其余的都是错误的......有什么想法吗?