Maison > développement back-end > tutoriel php > java - php如何字符串转二进制数组后对二进制数组进行md5摘要,对摘要后的二进制数组转化为十六进制字符串输出?

java - php如何字符串转二进制数组后对二进制数组进行md5摘要,对摘要后的二进制数组转化为十六进制字符串输出?

WBOY
Libérer: 2016-08-04 09:21:01
original
1300 Les gens l'ont consulté

转换入参字符串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('字符串');

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal