2010-12-22 137 views
1

我需要生成一个大的随机字符串来加密一些在Perl中的密码。我现在用来加密的密钥来自Gibson Research Corp网站。他们的目的是为了我的测试与地方持有人。现在我正在寻找最终的东西。对于我在perl中生成随机十六进制字符串的简单方法是什么?

我想将密钥放在文件中,类似于SSL证书,但不会很长,现在我正在使用64位密钥进行测试,我认为1024位密钥会有点矫枉过正,这个密钥永远不会在互联网上被看到,它只是从我的配置文件中加密密码,或多或少地“撬”眼睛。它的原因是在某种文件中,因此加密器可以读取它并且解密器也可以读取,并且它们将使用相同的密钥保持同步,而不必将密钥复制并粘贴到每个脚本中,并因此具有用户错误的机会。

回答

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); 
+0

那么......然后呢?我生成一个大的随机数,然后通过十六进制函数传递给我的密钥字符串,然后将其写入文件? – ianc1215 2010-12-22 06:06:02

相关问题