首頁 >後端開發 >php教程 >java - php如何字串轉二進位數組後對二進位數組進行md5摘要,將摘要後的二進位數組轉換為十六進位字串輸出?

java - php如何字串轉二進位數組後對二進位數組進行md5摘要,將摘要後的二進位數組轉換為十六進位字串輸出?

WBOY
WBOY原創
2016-08-04 09:21:011301瀏覽

轉換入參字串waitForSignString 為二進位數組,編碼採用UTF-8(Java代碼如:waitForSignString.getByte("utf-8")),得到簽名入參的二進位格式資料(waitForSignBytes)。

使用MD5,Sha1或Sha256演算法對waitForSignBytes進行摘要簽署。得到簽章在結果二進位數組資料(signatureBytes)

對簽章輸出的結果二進位陣列(signatureBytes)進行16進位的字串編碼,得到最後的簽章字串(signature)

演算法表達式:

String signature = Hex(digest (stringToSign+secretKey)) 其中digest演算法可以為:MD5, Sha256Hex

請問這段簽章演算法用php該怎麼實作? php的md5似乎沒有辦法操作陣列。 。 。 。

回覆內容:

轉換入參字串waitForSignString 為二進位數組,編碼採用UTF-8(Java代碼如:waitForSignString.getByte("utf-8")),得到簽名入參的二進位格式資料(waitForSignBytes)。

使用MD5,Sha1或Sha256演算法對waitForSignBytes進行摘要簽署。得到簽章在結果二進位數組資料(signatureBytes)

對簽章輸出的結果二進位陣列(signatureBytes)進行16進位的字串編碼,得到最後的簽章字串(signature)

演算法表達式:

String signature = Hex(digest (stringToSign+secretKey)) 其中digest演算法可以為:MD5, Sha256Hex

請問這段簽章演算法用php該怎麼實作? php的md5似乎沒有辦法操作陣列。 。 。 。

  1. 在PHP中,字串是相容二進位的,並且預設就帶有編碼形式,如果你的字串本身是UTF-8編碼的,那它就已經是UTF-8的二進位數組了。

  2. PHP中的md5函數可以直接計算字串(也就是二進位陣列)的MD5值,預設輸出的就是已經轉換成16進位的結果。

所以,在Java中捺莫多操作所要實現的…
在PHP中就是 $md5 = md5('字串');

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn