php项目开发案例源码(php网页设计实例代码)

php的api接口 在实际工作中,使用PHP写api接口是经常做的,PHP写好接口后,前台就可以通过链接获取接口提供的数据,而返回的数据一般分为两种情况,xml和json,在这个过程中,服务器并不知道,请求的来源是什么,有可能是别人非法调用我们的接口,获取数据,因此就要使用安全验证。 验证原理 示意图 原理 从图中可以看得很清楚,前台想要调用接口,需要使用几个参数生成签名。 时间戳:当前时间 随机…

php的api接口

在现实工作上,应用PHP写api接口是常常做的,PHP写好接口后,前台就可以根据连接获得接口给予的数据信息,而回到的数据信息一般分成2种状况,xml和json,在这个环节中,网络服务器并不了解,要求的由来是啥,有可能是他人不法启用大家的接口,获取信息,因而就需要应用身份验证。

认证基本原理

平面图

PHP开发api接口安全验证的实例

基本原理

从图上能看得很清晰,前台要想启用接口,必须应用好多个主要参数转化成签名。

时间格式:现在时间

随机数:随机生成的随机数

动态口令:前后台开发时,一个双方都了解的标志,等同于暗语

算法规则:商谈好的计算规则,上边三个主要参数可以运用算法规则转化成一个签名。

前台生成一个签名,当必须浏览接口的情况下,把时间格式,随机数,签名根据URL传送到后台管理。后台取得时间格式,随机数后,根据一样的算法规则测算出签名,随后和传送来的签名开展比照,一样得话,回到数据信息。

算法规则

在前后左右台互动中,算法规则是十分关键的,前后左右台都需要根据算法规则测算出签名,对于规则如何制订,看你怎么开心如何来。

我这个算法规则是

1 时间格式,随机数,动态口令依照首字母大小写次序排列

2 随后拼凑成字符串数组

3 开展sha1数据加密

4 再开展MD5数据加密

5 转化成英文大写。

前台

这儿我并没具体的前台,立即应用一个PHP文件替代前台,随后根据CURL仿真模拟GET要求。我运用的是TP架构,URL格式是pathinfo文件格式。

源码

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/3/16 0016
 * Time: 15:56
 */
namespace ClientController;
use ThinkController;
class ClientController extends Controller{
 const TOKEN = \'API\';
 //仿真模拟前台要求网络服务器api接口
 public function getDataFromServer(){
 //时间格式
 $timeStamp = time();
 //随机数
 $randomStr = $this -> createNonceStr();
 //转化成签名
 $signature = $this -> arithmetic($timeStamp,$randomStr);
 //url地址
 $url = \"http://www.apitest.com/Server/Server/respond/t/{$timeStamp}/r/{$randomStr}/s/{$signature}\";
 $result = $this -> httpGet($url);
 dump($result);
 }
 //curl仿真模拟get请求。
 private function httpGet($url){
 $curl = curl_init();
 //必须要求的是哪个详细地址
 curl_setopt($curl,CURLOPT_URL,$url);
 //表明把要求的信息已文件流的方法輸出到自变量中
 curl_setopt($curl,CURLOPT_RETURNTRANSFER,1);
 $result = curl_exec($curl);
 curl_close($curl);
 return $result;
 }
 //随机生成字符串数组
 private function createNonceStr($length = 8) {
 $chars = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789\";
 $str = \"\";
 for ($i = 0; $i < $length; $i  ) {
 $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1);
 }
 return \"z\".$str;
 }
 /**
 * @param $timeStamp 时间格式
 * @param $randomStr 随机字符串
 * @return string 回到签名
 */
 private function arithmetic($timeStamp,$randomStr){
 $arr[\'timeStamp\'] = $timeStamp;
 $arr[\'randomStr\'] = $randomStr;
 $arr[\'token\'] = self::TOKEN;
 //依照首字母大小写次序排列
 sort($arr,SORT_STRING);
 //拼凑成字符串数组
 $str = implode($arr);
 //开展数据加密
 $signature = sha1($str);
 $signature = md5($signature);
 //转化成英文大写
 $signature = strtoupper($signature);
 return $signature;
 }
}

服务端

接纳前台数据信息实现认证

源码

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/3/16 0016
 * Time: 16:01
 */
namespace ServerController;
use ThinkController;
class ServerController extends Controller{
 const TOKEN = \'API\';
 //回应前台的要求
 public function respond(){
 //认证真实身份
 $timeStamp = $_GET[\'t\'];
 $randomStr = $_GET[\'r\'];
 $signature = $_GET[\'s\'];
 $str = $this -> arithmetic($timeStamp,$randomStr);
 if($str != $signature){
 echo \"-1\";
 exit;
 }
 //仿真模拟数据信息
 $arr[\'name\'] = \'api\';
 $arr[\'age\'] = 15;
 $arr[\'address\'] = \'zz\';
 $arr[\'ip\'] = \"192.168.0.1\";
 echo json_encode($arr);
 }
 /**
 * @param $timeStamp 时间格式
 * @param $randomStr 随机字符串
 * @return string 回到签名
 */
 public function arithmetic($timeStamp,$randomStr){
 $arr[\'timeStamp\'] = $timeStamp;
 $arr[\'randomStr\'] = $randomStr;
 $arr[\'token\'] = self::TOKEN;
 //依照首字母大小写次序排列
 sort($arr,SORT_STRING);
 //拼凑成字符串数组
 $str = implode($arr);
 //开展数据加密
 $signature = sha1($str);
 $signature = md5($signature);
 //转化成英文大写
 $signature = strtoupper($signature);
 return $signature;
 }
}

結果

string(57) \"{\"name\":\"api\",\"age\":15,\"address\":\"zz\",\"ip\":\"192.168.0.1\"}\"

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

(0)
上一篇 2022年4月28日 下午2:15
下一篇 2022年4月28日 下午2:17

相关推荐

  • rar解压密码怎么破解(强制移除rar密码的方式)

    首先,我们新建一个python文件,在该文件目录下加密压缩一个111.txt的文件,压缩后文件名111.zip,密码随便输入4位(后面我们用程序来破解)。然后我们尝试用python去解压它。这里用到zipfile库,我们尝试使用1234密码去解压它,看结果,密码错误,程序报错! 接下来,我们引入itertools,它有一个方法是将元素全排列组合,如图: 然后,我们结合以上将程序完善,循环实现判断调…

    2022年5月12日
    1660
  • 做水果批发商利润多大,水果店经营技巧分享

    我来说句公道话,我是做水果生意的!其实水果销售的价格居高不下和果农的水果贱卖,最大的罪魁祸首,其实不在水果界,那么在哪里呢?我可以很负责任的告诉你,在房地产界! 有人可能觉得我在胡说,水果界和房地产有一毛钱关系?其实我想说,有直接关系!听我慢慢说来! 水果第一道手在果农,果农这几年赔钱,贱价卖手动的种植水果,按道理市场价格应该降价,百姓更买得起了,其实不然, 首先,果农卖给的都是城市之间贩卖的水果…

    2022年7月5日
    1410
  • ugc是什么意思,解说ugc模式的优缺点

    很多人会疑问“Ugc是什么”?实际上,Ugc是一个互联网术语,意思是指用户生产内容,与之相对应的一个词是pgc(指专业生产内容) UGC的概念最早起源于互联网领域,即用户将自己原创的内容通过互联网平台进行展示或者提供给其他用户。UGC是伴随着以提倡个性化为主要特点的Web2.0概念兴起的。 Ugc模式营销的要点是借助“技术发展促进应用”,实现螺旋式上升,主要发展精髓表现在内容聚合、用户沉淀、视频社…

    2022年7月17日
    870
  • 淘宝怎么上架自己的产品,千牛上传宝贝教程

    有很多人会说,上架新产品还不简单,就是拍照片上传到出售中的宝贝就可以了,其实不然现在淘宝竞争压力大,很好的做好上架新产品,能更好的做到事半功倍的效果。是不是做好主图做好详情页做好视频就可以上传了呢? 中小卖家如果是跟款的应该怎么做? 小卖家10-20款,跟淘宝爆款 跟爆款不是爆了很长时间的、不能超过一个月 找同款,必须是新品(选择新品) 找同款不要超过10个 找同款,标题和主图可以一样 如何判断自…

    2022年7月5日
    700
  • 文言文翻译器(文言文现代文互翻译器)

    电脑上有哪些可以翻译文言文的软件 说到文言文,大家是不是立马就想到了以前校园时期被支配的恐惧?本人是理科生,平时最害怕的就是文言文了。文言文一般是从初中开始接触和学习,考试的时候最害怕的就是面对文言文翻译了,这也是广大学生们的噩梦啊。不让人好好说话,明明是我,非要说成是“吾”,还要加上之、乎、者、也。 在遇到翻译文言文的情况,很多人都会借助一些在线翻译网站,不过大家要知道网站翻译是直译,不会自动调…

    2022年5月9日
    1610
  • 合肥哪里好玩旅游景区,合肥一日游必去景点推荐

    合肥人气高的景点有哪些?作为中国优秀旅游城市,合肥最火的旅游景点有很多,排行前列的有三河古镇、包公园、李鸿章故居、巢湖风景名胜区、大蜀山森林公园、渡江战役纪念馆、紫蓬山、合肥非遗园…… 合肥市三河古镇景区 5A景区#古镇# 三河古镇,古名鹊渚、鹊尾(渚)、鹊岸,是中国历史文化名镇,国家AAAAA级旅游景区,位于安徽省合肥市肥西县南端,地处肥西、庐江、舒城交界处,古镇总面积2.9平方公里。三河古镇有…

    2022年9月5日
    470
  • 进口内衣品牌排行榜(公认舒适度最高的十个品牌)

    如今市面上的文胸品牌越来越多,当然也有分哺乳文胸及少女文胸等类别区分。这导致了很多女性朋友对挑选文胸有所困难,不知道选择哪家的文胸比较好等问题。今天小编给大家介绍2020年十大著名文胸品牌,希望能解决大家的问题。 01 Triumph黛安芬 曾经在仓库里手工制作紧身内衣的作坊,今天已经成为了世界上最有实力的内衣生产商之一:我们的企业崇尚时尚产品,我们在不断地追求,同时,我们对周围的世界也充满了敬仰…

    2022年10月22日
    820
  • origin怎么做切线取交点(origin画切线不用插件)

    采用OriginPro8版本 通过紫外光谱扫描适当浓度下的样品的全谱图,确定样品的出峰位置 确定出峰处的吸收波长后,通过测试一系列的浓度的吸光度 在origin中输入浓度(x轴)与吸光度(y轴)进行线性绘图 选择Analysis中的Fitting、FitLinear、OpenDialog进行线性拟合 图中数值大于0.99即可满足要求,越贴近1越好,这样一个标准曲线就拟合好了

    2022年5月12日
    2930
  • 摆地摊卖小吃一天能赚多少钱,适合摆地摊的暴利小吃生意

    今天小编所分享的的是一种比较特色的面食小吃,面食是咱们中国的一大经典美食,尤其是北方人最爱吃,除了平时我们所吃的馒头,花卷,面食之外,还有一些独特的面食小吃特别受食客们喜爱。 小编家是北方人,对于面食也是情有独钟,今天分享的这种面食小吃名叫锅贴,锅贴是山东的一种名小吃,有位80后大姐摆摊卖“特色小吃”10元一份,每天收入1000元。 这位大姐选择在路边摆摊卖锅贴,每天都能卖好几锅,由于这位大姐所做…

    2022年8月31日
    450
  • 港币转换成人民币怎么算,人民币和港币换算器

    上个周末, 阿宝简直经历了人生最困苦的事情, 简直一言难尽…. 上周去香港, 从福田口岸出发去了上水广场, 从上水下港铁时发现自己的八达通仅仅剩下了15港币, 额,这样回家的时候根本不够…. 一摸口袋, 走的时候也没有兑换港币, 八达通根本充不上, 本想着在充值区站一下问问路人可不可以兑换给自己点点港币, 但是太太太害羞了, 也没好意思问。 最后阿宝问了卡莱美的小姐姐, 小姐姐说你去附近那…

    2022年6月9日
    1190

发表回复

登录后才能评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信