2012-10-29 19 views
0

我試圖將我的網站連接到一個支付網站,需要一個特定的驗證碼,第一個MD5哈希,然後base64編碼。所以說明PDF給給予一定的輸入字符串的例子:我得到的md5哈希相同的輸出,但base64_encode結果是不一樣的

input EX123123456100.00 
md5(input) => 231cd7f8e0151f6e0c4a60b33752a1e7 
base64_encode(md5(input)) => IxzX+0AVH24MSmCzN1Kh5w== 

所以,當我嘗試這個樣本輸入,我得到SAME輸出爲md5哈希值。但base64_encode的結果是不一樣的。說明指出base64_encode需要以十六進制格式對值進行編碼才能生效。我猜我的base64_encode在我的PHP腳本編碼的字符串,這就是爲什麼我從PDF文件得到不同的結果。那麼如何讓base64_encode編碼一個十六進制值?或者還有另一個原因,我獲得了不同的價值?

+2

MD5不保證是唯一的。但是base64是。 –

+0

@RobertHarvey out'md5'結果是相同的,所以如果你將相同的輸入傳入base64,那麼我們應該再次得到相同的結果嗎? – Richard

+0

如果你對base64輸出得到不同的結果,這意味着你通過了不同的輸入。 –

回答

3

對於base64編碼的東西,這已經是一個非常好的ASCII字符串了,這並沒有什麼意義。如果將true作爲第二個參數傳遞給md5,它將返回原始二進制數據而不是十六進制字符串。 Base64編碼給你適當的例子值:

base64_encode(md5($key, true)) 

要麼你有誤解的說明,或說明具有誤導性。

+0

這樣做,完美。非常感謝你 – Richard

相關問題