4

perl 組み込みパックを使用して、128 ビットまたは 256 ビットの数値 (Crypt::Random::makerandom で生成された AES キー/ivs) をパックすることは可能ですか? はいの場合、私のテンプレート X は何にすべきですか

pack('X', ($256_bit_number)); 

なれ?

ありがとうございました。

4

1 に答える 1

11

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
于 2011-04-13T00:57:43.227 に答える