конвертировать php в ruby - PullRequest
0 голосов
/ 02 июля 2010

Я изменил фрагмент Ruby, и теперь он работает, я забыл добавить часть md5 в предыдущий пост, извините.После этого я еще раз протестировал фрагмент PHP, и теперь оба вывода одинаковы.

Вот что у меня есть:

PHP:

"Inx ".base64_encode('Jon').' '.base64_encode(pack( 'H*' , md5($message."werty")))

Ruby:

md5 = Digest::MD5.digest(msg +"werty")
auth = "Inx " + Base64.b64encode('Jon').strip() + " " + Base64.b64encode(md5).strip()

Вывод:

PHP:

Inx Sm9u FL6ZQ1EAMcVDpUhGQ9kxjg==

Ruby:

Inx Sm9u FL6ZQ1EAMcVDpUhGQ9kxjg==

, и это используемое сообщение:

<?xml version="1.0" encoding="UTF-8"?> <push><application>Jon</application><service><![CDATA[test-2]]></service><service-provider>Absolute</service-provider><session-id>jbg01</session-id><trigger>bulk link</trigger><sms-text url="http://example.com" url-tag="xxx"><![CDATA[Hello world]]></sms-text><recipient>555555</recipient><from>5555</from></push>

Я изменил некоторую конфиденциальную информацию из xml, поэтому она не совсем совпадает со строкой, используемой в строке PHP.

1 Ответ

1 голос
/ 02 июля 2010
require "digest/md5"
Digest::MD5.digest(string)

создает двоичный MD5-дайджест (16 байт) напрямую, вам не нужно pack

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...