В четвертой части цикла статей "Secure Programming Techniques" рассматривается вопрос проверки и генерации паролей в программе на Perl. Описано как проверять пароли и генерировать хэш при помощи функций crypt(), md5_base64() из модуля Digest::MD5, как создать случайную последовательность для формирования пароля.
В статье лишь вскользь рассмотрен такой метод генерации случайной последовательности как использование генератора случайных чисел ядра системы, через устройства /dev/urandom (без блокировки, но менее случайная последовательность) или /dev/random:
sub true_rand{
my ($num_char) = @_;
my ($rand_line, $dev_line);
$rand_line="";
open(UR,"/dev/urandom");
do {
read (UR, $dev_line, 4096);
$dev_line =~ s/[^\d\w]//gi;
$rand_line .= $dev_line;
} until (length($rand_line) >= $num_char);
close(UR);
return substr($rand_line,0, $num_char);
}
|