hmac-md5的PHP实现及原理
中文说明:
HMAC算法的实现过程需要一个加密用的散列函数(表示为H)和一个密钥。
一般我们采用的散列函数为Md5或者SHA-1,这两个散列函数的分割数据块长度都是64字节,即512位,HMAC-MD5算法就是采用密钥加密+Md5信息摘要的方式形成新的密文。
由于数据块长度为64,为了保证密钥+data进行digest的时候的数据完整性(为什么需要保证?)最终加进数据的密钥保证为64个字节长。
密钥的长度可以是小于等于数据块长度的任何正整数值。应用程序中使用的密钥长度若是比B大,则首先使用散列函数H作用于它,然后用H输出的L长度字符串作为MAC中实际使用的密钥。一般情况下,推荐的最小密钥K长度是L长(与H的输出数据长度相等,比如MD5的L就是16字节,SHA-1是20字节)
过程如下:
(1) 在密钥key后面添加0来创建一个长为B(6...
.jpg)

.jpg)

.jpg)