<?php/** 生成md5加密字符串* @author lee* @param 需要进行验证的参数* @return md5_str 生成的md5加密字符串*/function get_md5_str($data){ksort($data);$str = ‘‘;foreach($data as $k=>$v){ ???$str .= "{$k}={$v}&";}$md5_str = md5($str);return $md5_str;}/** 时间缀验签名验证* @author lee* @param data 需要验证的参数* @param valid_str md5加密字符串* @param expire 过期时间,默认1分钟* @return bool true,通过验证;false,验证失败*/function time_valid($data,$valid_str,$expire = 1){$time = time();// 1、格式不正确,验证不通过if(!is_array($data)){ ???return false;}// 2、时间缀未传,验证不通过if(!$data[‘timestamp‘]){ ???return false;}// 3、时间缀不在有效范围内,验证不通过if(($data[‘timestamp‘] < ($time - $expire * 60)) || ($data[‘timestamp‘] > ($time + $expire * 60))){ ???return false;}ksort($data);$str = ‘‘;foreach($data as $k=>$v){ ???$str .= "{$k}={$v}&";}$md5_str = md5($str);// 4、加密字符串不正确,验证不通过if($valid_str !== $md5_str){ ???return false;}return true;}
$arr = array(‘timestamp‘ => time(),‘title‘ => ‘标题‘,‘name‘ => ‘名称‘);$md5_str = get_md5_str($arr);$ret = time_valid($arr,$md5_str);var_dump($ret);
php时间缀签名函数
原文地址:http://blog.51cto.com/12173069/2336228