Мне нужно разместить какую-либо форму в CGI (Perl), и один из входов требует хеша, закодированного в base64 md5. Образец предоставляется той сторона, которая должна получить, работает в PHP следующим образом:Как кодировать base64 md5 в CGI?
$hash = base64_encode(md5($data1."|". $data2."|". $data3));
Чтобы заставить его работать в CGI Я использую следующий код:
use Digest::MD5 qw(md5_base64);
my $base64_digest = md5_base64($data1."|". $data2."|". $data3);
Но закодированную строку на исходе другой, если я делаю это в PHP. Похоже, я делаю это неправильно в CGI. Как правильно закодировать его?
$ echo '<? echo base64_encode(md5("abc|def|ghi")), "\n"; ?>' | php
MzJjNDcyZmE0MjI3MWYyYWE0YTg1MWZkMmM1NzRkODc=
$ perl -MDigest::MD5=md5_base64 -E'say md5_base64("abc|def|ghi");'
MsRy+kInHyqkqFH9LFdNhw
Ваше решение отлично работает! Благодарим вас за подробное объяснение и предложения. – Alepri