2010-07-01 1 views
0

J'ai changé l'extrait de Ruby et maintenant cela fonctionne, j'avais oublié d'ajouter la partie md5 int le poste précédent, désolé. Après, j'ai de nouveau testé l'extrait PHP, et les deux sorties sont les mêmes maintenant.convertir php en ruby ​​

Voici ce que j'ai jusqu'à présent:

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() 

La sortie est:

PHP:

Inx Sm9u FL6ZQ1EAMcVDpUhGQ9kxjg== 

Ruby:

Inx Sm9u FL6ZQ1EAMcVDpUhGQ9kxjg== 

et c'est le message utilisé:

<?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> 

J'ai changé quelques-unes des informations sensibles à partir du xml il est donc pas tout à fait la même chose que la chaîne utilisée dans le PHP chaîne.

+0

La prochaine fois il suffit d'ajouter une réponse vous-même. Cela rendra la question et la réponse beaucoup plus claires. J'ai dû lire ceci quelques fois pour me rendre compte que vous l'aviez résolu. – BobbyShaftoe

Répondre

1
require "digest/md5" 
Digest::MD5.digest(string) 

produire le condensé binaire MD5 (16 octets) directement, vous n'avez pas besoin de pack