PHP接口签名

    技术2022-07-10  119

    PHP接口签名

    签名方式签名规则验签视频参考

    签名解决了什么问题? 数据在网络中传输,可能因为各种原因(HTTP明文传输,网络异常等)导致数据损坏,接收端收到的数据出现问题,为了保证信息完整性,使用签名技术。

    签名方式

    HTTP接口通信中常用的两种签名方式(本文介绍key签名方式)

    key签名非对称加密签名(公钥私钥)

    签名规则

    即如何计算签名,比如使用md5或sha1将待签名数据与key一起计算hash值,然后将数据与签名一起发送出去。

    $data = 'hello world'; //待签名数据 $key = 'xxxxx'; // 参与计算的key $sign = sha1($data.$key); //生成签名 //使用get 或 post将数据与签名一起发送 $url = "http://xxx.com/xxx?data={$data}&sign={$sign}"; //get发送

    当然,规则视具体情况而定,只要发送端发与接收端协商好即可。

    验签

    接收端收到数据后,使用与生成签名相同的规则计算出签名,然后与接收到的签名比较,如果一致则验签通过,否则验签失败。

    $key = 'xxxxx'; //与发送端一样的key $data = $_GET['data']; //接收到的数据 $sign = $_GET['sign']; // 接收到的签名 $local_sign = sha1($data.$key); //验签算法 与 发送端的生成签名算法保持一致 if($sign == $local_sign) { echo "验签通过"; }else{ echo "验签失败"; }

    视频参考

    视频参考

    Processed: 0.011, SQL: 9