perl 組み込みパックを使用して、128 ビットまたは 256 ビットの数値 (Crypt::Random::makerandom で生成された AES キー/ivs) をパックすることは可能ですか? はいの場合、私のテンプレート X は何にすべきですか
pack('X', ($256_bit_number));
なれ?
ありがとうございました。
Perl はそれほど大きな数値を保持できないため、それらをパックすることはできません。
makerandom
では、実際に返されるものを見てみましょう。
$ perl -MData::Dumper -MCrypt::Random=makerandom \
-e'print(Dumper(makerandom(Size => 256, Strength => 1)));'
$VAR1 = bless( do{\(my $o = 148076988)}, 'Math::Pari' );
ああ、Math::Pariオブジェクトです。ドキュメントを見ると、それらをパックする簡単な方法はないようです。しかし、そうする必要はないようです。Crypt::Randommakerandom_octet
は、「パックされた」数を返すことを提供します。
$ perl -MCrypt::Random=makerandom_octet \
-e'print(unpack("H*", makerandom_octet(Size => 256, Strength => 1)));'
1432698ef28c63d9cb0bba474c1644b4a6f9736616bd070102a612785332e94bb4