PHP中 HMAC-MD5 加密算法

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?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)));
}

?>

Powered by AppBlog.CN     浙ICP备14037229号

Copyright © 2012 - 2020 APP开发技术博客 All Rights Reserved.

访客数 : | 访问量 :