php中如何使用时间缀签名函数

发布时间:2021-07-14 16:48:59 作者:Leah
来源:亿速云 阅读:136

本篇文章给大家分享的是有关php中如何使用时间缀签名函数,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

  1. 代码:

    <?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;
    }
  2. 测试:

    $arr = array(
    'timestamp' => time(),
    'title' => '标题',
    'name' => '名称'
    );
    $md5_str = get_md5_str($arr);
    $ret = time_valid($arr,$md5_str);
    var_dump($ret);
  3. 输出:
    php中如何使用时间缀签名函数


以上就是php中如何使用时间缀签名函数,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注亿速云行业资讯频道。

推荐阅读:
  1. php求出当年/月/日的时间缀
  2. javascript与php时间转时间缀

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

php

上一篇:Oracle中decode函数如何使用

下一篇:mysql 中count函数的作用是什么

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》