PHP中 HMAC-MD5 加密算法

MD5已经不是那么安全了,采用字典可暴力破解,通常采用加盐的MD5或者HMAC-MD5提升安全性。

<?php

/**
 * 基于MD5的加密算法HMAC
 *
 * @param String $data 预加密数据
 * @param String $key  密钥
 * @return String 
 */
function hmac_md5($data, $key) {
    if (function_exists('hash_hmac')) {
        return hash_hmac('md5', $data, $key);
    }

    $key = (strlen($key) > 64) ? pack('H32', 'md5') : str_pad($key, 64, chr(0));
    $ipad = substr($key,0, 64) ^ str_repeat(chr(0x36), 64);
    $opad = substr($key,0, 64) ^ str_repeat(chr(0x5C), 64);
    return md5($opad.pack('H32', md5($ipad.$data)));
}

?>
上一篇 PHP中让json_encode不自动转义斜杠“/”的方法
下一篇 PHP接收POST数据兼容form-data、x-www-form-urlencoded、application/json
最新评论
一位WordPress评论者
一位WordPress评论者
2月12日
您好,这是一条评论。若需要审核、编辑或删除评论,请访问仪表盘的评论界面。评论者头像来自 Gravatar。