在perl中生成随机十六进制字符串的简单方法是什么?

时间:2010-12-22 05:59:19

标签: perl encryption

我需要生成一个大的随机字符串来加密perl中的一些密码。我现在用来加密的密钥是从Gibson Research Corp网站生成的。他们本来是我的地方测试人员。现在我正在寻找最终的东西。

我希望密钥是一个封装在文件中的东西,有点像SSL证书,但不会那么长,现在我使用的是64位密钥进行测试我认为1024位密钥会有点矫枉过正,这个密钥永远不会在互联网上看到它只是加密我的配置文件中的密码从“窥探”眼睛或多或少。它在某种文件中的原因是加密器可以读取它并且解密器也可以读取并且它们将使用相同的密钥保持同步而不必将密钥复制并粘贴到每个脚本中因此具有用户错误的可能性。

1 个答案:

答案 0 :(得分:4)

使用Perl hex function,您可以将十进制数转换为十六进制数。

这是一个创建一个由32个随机十六进制数字组成的字符串的片段:

my $rand_hex = join "", map { unpack "H*", chr(rand(256)) } 1..16;

这是另一种 - 更简单 - 生成32个随机十六进制数字的方法:

use Digest::MD5 qw(md5_hex);
my $rand_hex2 = md5_hex(rand);