Я пытаюсь сгенерировать уникальную строку / идентификатор, используя другую относительно большую строку (состоящую из имени пути к каталогу), подумав об использовании функции crypt. Тем не менее, он работает не так, как ожидалось, скорее всего из-за моей неспособности понять.
здесь код и вывод:
#!/usr/bin/perl
print "Enter a string:";
chomp(my $string = <STDIN>);
my $encrypted_string = crypt($string,'di');
print "\n the encrypted string is:$encrypted_string";
выход:
$ perl crypt_test
Enter a string:abcdefghi
the encrypted string is:dipcn0ADeg0Jc
$
$ perl crypt_test
Enter a string:abcdefgh
the encrypted string is:dipcn0ADeg0Jc
$
$
$ perl crypt_test
Enter a string:abcde
the encrypted string is:diGyhSp4Yvj4M
$
Я не мог понять, почему он возвращал одну и ту же зашифрованную строку для первых двух строк и отличался для третьей. Обратите внимание, что соль одинакова для всех.