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修复,程序杀毒,插件定制都可以提供最佳解决方案。