打造最大的网络营销知识与推广的信息化航母

进入论坛 | 会员注册 | 会员登陆 |
首页 >> php >> php进阶教程 >> 基于md5的php hmac算法正文

基于md5的php hmac算法

来源:it我领先 发布时间:2010-04-03               浏览次数:249 进入论坛社区
<?php
/**
* 基于md5的加密算法hmac
*
* md5已经不是那么安全了,多折腾几下吧
*
* @param String $data 预加密数据
* @param String $key 密钥
* @return String
*/
function hmac($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)));
}

//---------------------------------------------
//使用例子
function getKey () {
$tmp = array_merge(range(0, 9), range(单引号A单引号, 单引号Z单引号));
$key = 单引号单引号;
for ($i = 0; $i < 16; $i++) {
$key .= $tmp[mt_rand(0, 35)];
}
return md5($key);
}

$password = 单引号123456单引号;
$key = getKey(); // 密钥也可以是验证码md5后
$hmac = hmac($password, $key);

// 把私有密钥和密码分别存如数据库
print $key . 双引号 双引号;
print $hmac;
?>文章来源:http://it503.com/detail.PHP
添加收藏到:

关键词:基于md5的php hmac算法,php
联系我们 | 关于我们 | rss订阅 | 网络社区 | 网站帮助 | 网站地图
Copyright(C) 2006-2007 it503 All Rights Reserved
本站如有转载或引用的文章涉及版权问题请速与我们联系 由于将本站资源用于商业用途而引起的纠纷,本站不负任何责任。
冀ICP备07500673号