Закодировать В Base64_decode

phplama

Новичок
Закодировать В Base64_decode

Не могу понять почему не получается закодировать base64_decode на php также как на perlе
мне надо чтобы на пжп было так же как и на perle

на perle cGyYQkp5HlruqSkmB7OgoA==
на php OGY1OWFjZTNjY2I2NDAxZWQ5ZjNkMjU0YTY1NTU1MGQ=

PHP:
Perl
// Вариант с использованием модуля Digest::MD5
use MIME::Base64;
use Digest::MD5 qw(md5);
// Вывод на экран: cGyYQkp5HlruqSkmB7OgoA==
print encode_base64(md5("test" . "1" . "199345605782" . "Auto" . "38.95" . "643" . "Тестовый перевод" . "TEST_PUBLIC_KEY"));

// Вариант с использованием модуля MD5
use MIME::Base64;
use MD5;
// Вывод на экран: cGyYQkp5HlruqSkmB7OgoA==
print encode_base64(MD5->hash("test" . "1" . "199345605782" . "Auto" . "38.95" . "643" . "Тестовый перевод" . "TEST_PUBLIC_KEY"))
PHP:
php // Вывод на экран: OGY1OWFjZTNjY2I2NDAxZWQ5ZjNkMjU0YTY1NTU1MGQ== print base64_encode(md5("test" . "1" . "199345605782" . "Auto" . "38.95" . "643" . "Тестовый перевод" . "TEST_PUBLIC_KEY"));
:confused:

-~{}~ 24.10.08 15:44:

на php выводит совсем по другому

PHP:
php 
// Вывод на экран: OGY1OWFjZTNjY2I2NDAxZWQ5ZjNkMjU0YTY1NTU1MGQ== 

print base64_encode(md5("test" . "1" . "199345605782" . "Auto" . "38.95" . "643" . "Тестовый перевод" . "TEST_PUBLIC_KEY"));
 

Gas

может по одной?
значит perl и php в разном формате возвращают значение md5
 

phplama

Новичок
нет в одинаковом проверял, да и как может быть мд5 разное как и base64_encode ? не понятно от языка же не зависит.
 

phplama

Новичок
я отправлял запрос товарищу он прислал такую же строчку и что значит md5_hex ?
 

phplama

Новичок
проверял так бы не стал эту тему создовать

а в гугле сказано

PHP: md5 - Manual
I have verified that md5_hex() generates the same string as PHP's md5() function.
ru2.php.net/md5

тогда как на пжп сделать md5_hex ?
 

phplama

Новичок
значит нельзя закодировать в md5 на php так же как и на perle ?

не понимаю..
 

Gas

может по одной?
а,
тебе нужно на php получить md5 аналогичный приведённому перловому, а не наоборот.
тогда всё равно читай ман [m]md5[/m] - второй параметр
 

phplama

Новичок
люди же врать не будут

PHP:
PHP script:


md5("johnsmith") = cd4388c0c62e65ac8b99e3ec49fd9409
md5("john") = 527bd5b5d689e2c32ae974c6229ff785


Perl script:


md5_hex("johnsmith") = cd4388c0c62e65ac8b99e3ec49fd9409
md5_hex("john") = 527bd5b5d689e2c32ae974c6229ff785
 

Gas

может по одной?
попроси теперь этих людей, чтоб они сделали encode_base64 на php и перле полученных строк - результат будет одинаковым.
 

phplama

Новичок
в перле есть 3 типа представления MD5 qw(md5 md5_hex md5_base64);

но в данном случае

use Digest::MD5 qw(md5);

по этому мд5 и совпадает перла с пжп, значит encode_base64 не так кодирует?
 

Gas

может по одной?
жесть,
ладно разжую

perl::md5('str') == php::md5('str', true)
perl::md5_hex('str') == php::md5('str')

encode_base64 работает так-же само
 

phplama

Новичок
Спасибо тебе Gas все теперь ясно стало! очень рад

действительно надо кодировать

md5('mycodehere', true);

и тогда encode_base64 совпадает!
 

dimagolov

Новичок
вот вам и отсутствие явной типизации, и низкий порог вхождения...
 
Сверху