各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
QQ:420220301 微信/手机:150-3210-7690
当前位置:首页 > CMS教程 > PHP

php接口加密怎么做

管理员 2023-09-05
PHP
123

php接口加密怎么做

内容导读

收集整理的这篇技术教程文章主要介绍了php接口加密怎么做,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2097字,纯文字阅读大概需要3分钟

内容图文

解析接口
客户端接口传输规则:
1.用cmd参数(base64)来动态调用不同的接口,接口地址统一为http://a.lovexpp.com。

2.将要传过来的参数组成一个数组,数组添加timestamp元素(当前时间戳,精确到秒),将数组的键值按照自然排序从大到小排序

3.将数组组成 key=val&key=val的形式的字符串,将字符串与XPP_KEY连接在一起,用md5加密一次(32位小写),得到sign

4.将sign添加到参数数组中

5.将参数数组转换成json用post请求请求接口地址,key值为param

服务端接口解析规则:

1.接收参数param,将结果解析json得到参数数组

2.取出sign,去掉参数数组中的sign

3.将参数数组key值按照自然排序从大到小排序

4.将排序后的参数数组按照key=val&key=val的形式组成字符串,将字符串与XPP_KEY连接,用md5加密一次(32位小写),得到sign

5.将sign与客户端传过来的sign进行比对,如不一样则可能是中途被篡改参数,服务器拒绝此次请求

6.将sign与session中的sign对比,如果一样,则为重复提交,服务器拒绝此次请求

7.此次的sign存入session

8.执行路由cmd(base64解析后),将参数带到该方法中

<?php$xpp_key = "xxx";//接收参数param,将结果解析json得到参数数组$param = json_decode($_POST['param'] , true);//取出sign,去掉参数数组中的sign$client_sign = $param['sign'];unset($param['sign']);//将参数数组key值按照自然排序从大到小排序krsort($param);//将排序后的参数数组按照key=val&key=val的形式组成字符串,将字符串与XPP_KEY连接,用md5加密一次(32位小写),得到sign$sb = '';foreach($param as $key=>$val){$sb .= $key . '=' . $val . '&';}$sb .= $xpp_key;$server_sign = md5($sb);//将sign与客户端传过来的sign进行比对,如不一样则可能是中途被篡改参数,服务器拒绝此次请求if($server_sign !== $client_sign){echo json_encode(array('code'=>'invalid request'));exit;}//将sign与session中的sign对比,如果一样,则为重复提交,服务器拒绝此次请求if($server_sign == $_SESSION['last_sign']){echo json_encode(array('code'=>'Repeated requests'));exit();}//此次的sign存入session$_SESSION['last_sign'] = $server_sign;//执行路由cmd(base64解析后),将参数带到该方法中$cmd = base64_decode($param['cmd']);list($__controller,$__action) = explode('-' , $cmd);// 设置请求参数unset($param['cmd']);unset($param['timestamp']);foreach($param as $key => $val){$_REQUEST[$key] = $val;}

推荐教程:PHP视频教程

以上就是php接口加密怎么做的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php接口加密怎么做全部内容,希望文章能够帮你解决php接口加密怎么做所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


希望以上内容对你有所帮助!如果还有其他问题,请随时提问。 各类知识收集 拥有多年CMS企业建站经验,对 lecms, classcms, fastadmin, pbootcms, phpcms, eyoucms, yzmcms, PHP, xunruicms, jizhicms, dedecms, wordpress, hkcms, yzncms, 等各类cms的相互转化,程序开发,网站制作,bug修复,程序杀毒,插件定制都可以提供最佳解决方案。

扫码关注

qrcode

QQ交谈

回顶部