Как получить MD5 хеш в Perl

Задача. В Perl коде есть переменная. Нужно рассчитать MD5 хеш от значения этой переменной.

Решение

Решение — использовать Perl библиотеку Digest::MD5. Библиотека Digest::MD5 идет вместе с Perl, так что если у вас есть Perl, то эта библиотека сразу доступна, дополнительно устанавливать ничего не нужно.

Получить MD5 хеш можно с помощью такого кода:

▶ Run
#!/usr/bin/perl

use Digest::MD5 qw(md5_hex);

my $var = 123;

my $md5_hash = md5_hex($var);

print $md5_hash;

Эта программа выведет на экран строку '202cb962ac59075b964b07152d234b70'.

  • use Digest::MD5 qw(md5_hex); — мы подключаем Perl библиотеку и говорим что из этой библиотеки нам нужна функция md5_hex
  • my $var = 123; — создали переменную и положили туда значение 123
  • my $md5_hash = md5_hex($var); — с помощью функции md5_hex мы рассчитали MD5 хеш от значения переменной $var и поместили результат в переменную $md5_hash
  • print $md5_hash; — вывели значение переменной $md5_hash на экран

Если при подключении библиотеки не указать что нам нужна функция md5_hex, а просто написать use Digest::MD5;, то при выполнении программы будет ошибка:

Undefined subroutine &main::md5_hex called at a.pl line 7.

Формат возвращаемого значения функции md5_hex

Функция md5_hex всегда возвращает строку. В этой строке всегда ровно 32 символа. В этой строке могут быть цифры от 0 до 9 и латинские буквы в нижнем регистре от 'a' до 'f'. Других символов в этой строке быть не может.

Функция md5_hex возвращает MD5 в виде строки в котором содержится число в шестнадцатеричной системе счисления.

Другие статьи

Комментарии