ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

api加密与校验

2022-04-16 14:35:08  阅读:120  来源: 互联网

标签:retData 加密 data 校验 sign api return salt


一、函数代码

    /**
     * 校验
     * @data   (请求的数组)
     * @salt   (加密盐)
     * */
    private function verify(array $data, $salt){
        $sign = $data['sign'] ?? null;
        if(!$sign) return false;
        unset($data['sign']);
        return $sign === hash('sha256', $this->serial($data) . $salt);
    }
    /**
     * 生成签名
     * @data   (请求的数组)
     * @salt   (加密盐)
     * */
    private function sign(array $data, $salt){
        return hash('sha256', $this->serial($data) . $salt);
    }
    /**
     *生成一个经过 URL-encode 的请求字符串
     * @data   (请求的数组)
     * */
    private function serial(array $data){
        ksort($data);//按照键名对数组排序
        return http_build_query($data);
    }

二、校验方式

        $jsonData = file_get_contents("php://input");
        $postData = json_decode($jsonData,true);
        if(!$this->verify($postData["data"],$salt)){
            trace("签名错误了!!!!!!!!!!!!!","ERROR");
            return false;
        }

三、加密方式

        $retData = ['openlink' => "","timestamp" =>time()];
        $retData["sign"] = $this->sign($retData,$salt);
        $this->success('返回成功', $retData);

  

标签:retData,加密,data,校验,sign,api,return,salt
来源: https://www.cnblogs.com/shenqilun/p/16152706.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有