私は、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 文字は問題ありませんが、残りは間違っています... 何かアイデアはありますか?