Да, Дайджест :: MD5 поможет; он написан Жизлом Аасом (автором LWP среди других отличных пакетов) и имеет хороших отзывов и оценок на cpanratings , оба из которых должны вас заверить, что это хороший выбор.
Использовать его можно так же просто, как:
my $checksum = Digest::MD5::md5_hex($data);
Если вы считаете, что вы можете изменить выбранный алгоритм дайджеста в будущем (например, вместо этого использовать SHA-1), вы можете рассмотреть возможность использования Дайджест вместо этого - также написанного Gisle Aas, и предоставляя простой интерфейс для различных дайджест-модулей.
Например:
my $digest = Digest->new('MD5');
$digest->add($data); # to add data from a scalar, or:
$digest->add_file($filehandle); # to add data read from a filehandle
my $checksum = $digest->hexdigest; # or just ->digest for binary
Этот подход имеет то преимущество, что вы можете просто изменить "MD5" на, например. "SHA-1", и все готово.
Просто для полноты, я добавлю, почему вы можете захотеть разработать с возможностью легко использовать другие алгоритмы хеширования - если это использовалось в каких-либо целях безопасности, MD5 оказалась уязвимой для коллизий хешей - Департамент США Министерства национальной безопасности рекомендует, чтобы MD5 "считался криптографически взломанным и непригодным для дальнейшего использования" . Тем не менее, для общей проверки целостности данных это все еще приемлемый выбор для многих и широко поддерживается.
SHA-1 также считается слабым; SHA-2 считается лучшим выбором для безопасного хеширования в криптографических целях.