是否可以使用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::Random提供了返回“打包”号码的makerandom_octet.
$perl -MCrypt::Random=makerandom_octet \ -e'print(unpack("H*",makerandom_octet(Size => 256,Strength => 1)));' 1432698ef28c63d9cb0bba474c1644b4a6f9736616bd070102a612785332e94bb4