Data::UUID会生成安全随机序列吗?是否可以使用它来生成密码恢复链接? 例如:
use Data::UUID;
my $u = Data::UUID->new;
my $uuid = $u->create_from_name_str(NameSpace_URL, 'www.example.com');
#then add $uuid to db
#and send email to user
答案 0 :(得分:1)
我个人使用UUID::Tiny,因为它能够生成更随机的版本4 UUID。但是,在任何一种情况下,模块都只使用Perl的rand
函数,这对于严重的加密工作来说不够随意。
尽管如此,对于典型的密码恢复电子邮件来说,这可能是随机的。特别是如果密码恢复链接仅保持工作24小时,并在此之后停止工作。
这实际上取决于你所拥有的东西。它是一个发布穿着超级英雄服装的宠物照片的论坛,还是核发射代码?如果您认为您的网站可能成为犯罪分子的目标,那么选择更强大的东西可能是明智的。
可以使用以下方法生成具有低冲突概率的相当好的随机字符串:
use Crypt::PRNG;
my $string = sprintf(
q/%08x%s/,
time(),
Crypt::PRNG->new->bytes_hex(24),
);
答案 1 :(得分:1)