2010-07-01 126 views
0

我更改了Ruby代码片段,现在它可以工作,我忘记了在以前的文章中添加了md5部分,对不起。之后我重新测试了PHP代码片段,现在两个输出都是一样的。将php转换为ruby

这是我到目前为止有:

PHP:

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

红宝石:

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

输出是:

PHP:

Inx Sm9u FL6ZQ1EAMcVDpUhGQ9kxjg== 

红宝石:

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中使用的字符串串。

+0

下一次只需添加自己的答案。这将使问题和答案更加清晰。我必须多读几遍才能意识到你已经解决了这个问题。 – BobbyShaftoe 2010-07-03 00:02:00

回答

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

产生二进制MD5摘要(16个字节)直接,你不需要pack