php接口签名验证

在做一些api接口设计时候会遇到设置权限问题,比如我这个接口只有指定的用户才能访问。很多时候api接口是属于无状态的,没办法获取session,就不能够用登录的机制去验证,那么大概的思路是在请求包带上我们自己构造好的签名,这个签名必须满足下面几点:a、唯一性,签名是唯一的,可验证目标用户b、可变性,每次携带的签名必须是变化的c、时效性,具有一定的时效,过期作废d、完整性,能够对数据包进行验证,防止篡改//设置一个公钥(key)和私钥(secret),公钥用于区分用户,私钥加密数据,不能公开$key="c4ca4238a0b923820dcc509a6f75849b";$secret="28c8edde3d61a0411511d3b1866f0636";//待发送的数据包$data=array('username'=>'abc@qq.com','sex'=>'1','age'=>'16','addr'=>'guangzhou','key'=>$key,'timestamp'=>time(),);//获取signfunctiongetSign($secr...
开发笔记 开发笔记·2024-07-12

php 检查端口是否被占用

$ip='127.0.0.1';$port=9888;$sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP);socket_set_nonblock($sock);socket_connect($sock,$ip,$port);socket_set_block($sock);$return=@socket_select($r=array($sock),$w=array($sock),$f=array($sock),3);socket_close($sock);if($return==2){shell_exec("sudofuser-k-ntcp9888");shell_exec('phpwebserver.php');}var_dump($return); ...

Java实现登录接口在redis中根据key值获取验证码

JAVA1年前0629在自动化测试中,登录接口的验证码的处理有两种常见的方案,第一种是通过ocr识别,这种方式不能保证百分百正确,通常用在UI自动化测试中。第二种是去数据库中直接查询验证码,这种方式可以保证验证码百分百正确,一般验证码都是保存在redis中,通常用在接口自动化测试中。这里我们给出第二种方案。目录结构 │.gitignore│RedisCode.iml│├─.idea││.gitignore││misc.xml││modules.xml││uiDesigner.xml││workspace.xml├─out│└─production│└─RedisCode│└─com│└─chenguoxin│RedisCode.class│└─src└─com└─chenguoxinRedisCode.java具体代码RedisCode.java packagecom.chenguoxin;importredis.clients.jedis.Jedis;importjava.util.HashMap;importjava.util.Map;/***@authorch...

php如何输出三角函数

php输出三角函数主要用到GD库和数学方法,请看下面代码:<?phpdefine("MAX_WIDTH_PIXEL",600);define("MAX_HEIGHT_PIXEL",240);//发送标头信息header("Content-type:image/gif");//建立图像$img=imageCreate(MAX_WIDTH_PIXEL,MAX_HEIGHT_PIXEL);//设定颜色$bgcolor=imageColorAllocate($img,0xff,0xe9,0xe9);$red=imageColorAllocate($img,255,0,0);$blue=imageColorAllocate($img,0,0,255);$brown=imageColorAllocate($img,100,0,0);$black=imageColorAllocate($img,0,0,0);$width=MAX_WIDTH_PIXEL/2;//宽度$height=MAX_HEIGHT_PIXEL/2;//高度//建立坐标轴imageLine($img,$width,0,$wi...

PHP trigger_error() 函数

trigger_error()函数创建用户自定义的错误消息。trigger_error()函数用于在用户指定的条件下触发一个错误消息。它可以与内建的错误处理程序一起使用,或者与由set_error_handler()函数设置的用户自定义函数一起使用。当您需要在运行脚本时的某个指定条件下自定义错误消息时,该函数很有用。如果指定了一个不合法的错误类型,该函数返回FALSE,否则返回TRUE。trigger_error(error_message,error_types)参数描述error_message必需。规定错误消息。长度限制为1024个字符。error_types可选。规定错误消息的错误类型。可能的错误类型:E_USER_ERROR-用户生成的运行时的致命错误。不能恢复的错误。停止执行脚本。E_USER_WARNING-用户生成的运行时的非致命警告。脚本没有停止执行。E_USER_NOTICE-默认。用户生成的运行时的通知。脚本发现可能是一个错误,但也可能在脚本正常运行时发生。<?php$test=2;if($test>1){trigger_error("Acustome...
开发笔记 开发笔记·2024-07-04

腾讯云服务器怎么安装ssl

腾讯云服务器(TencentCloudServer)是一种可扩展性高、弹性服务的云计算产品,可以为用户提供强大的计算资源和灵活的网络配置。在使用腾讯云服务器时,为了保证网站的安全性,很多用户会选择为其安装SSL证书。SSL(SecureSocketsLayer)证书是一种数字证书,用于加密网站和保护用户的敏感信息。通过使用SSL证书,可以确保网站上的数据传输是安全、私密的,提高用户对网站的信任度。下面,我将为您介绍如何在腾讯云服务器上安装SSL证书。第一步:购买SSL证书在安装SSL证书之前,您需要先购买一个合适的SSL证书。腾讯云服务器支持多种类型的SSL证书,您可以根据自己的需求选择购买。首先,登录腾讯云官网,进入腾讯云控制台。在控制台页面中,选择云产品的“SSL证书”,然后点击“购买证书”按钮。接下来,您需要填写证书购买的相关信息,如域名、证书类型、证书品牌等。根据您的具体需求填写完毕后,点击“立即购买”按钮,完成证书的购买。第二步:申请SSL证书购买完SSL证书后,您需要申请证书来获取证书的相关信息。在腾讯...

PHP简单实现图片格式转换(jpg转png,gif转png等)

依赖php扩展gd和exif实现/***图片格式转换*@paramstring$image_path文件路径或url*@paramstring$to_ext待转格式,支持png,gif,jpeg,wbmp,webp,xbm*@paramnull|string$save_path存储路径,null则返回二进制内容,string则返回true|false*@returnboolean|string$save_path是null则返回二进制内容,是string则返回true|false*@throwsException*/functiontransform_image($image_path,$to_ext='png',$save_path=null){if(!in_array($to_ext,['png','gif','jpeg','wbmp','webp','xbm'])){thrownewException('unsupporttransformimageto'.$to_ext);}switch(exif_imagetype($image_path)){caseIMAGETYPE_GI...

PHP代码-禁止IP访问网站

如果你想要禁止某一个国家的IP访问你的网站,请使用以下PHP代码:(如果是WP把这段代码加到Header.php中)<?php/****test.php(屏蔽国家IP)**/$verification='美国';//需要屏蔽国家的IPfunctionget_client_ip(){$ip=$_SERVER['REMOTE_ADDR'];if(isset($_SERVER['HTTP_X_REAL_FORWARDED_FOR'])&&preg_match('/^([0-9]{1,3}.){3}[0-9]{1,3}$/',$_SERVER['HTTP_X_REAL_FORWARDED_FOR'])){$ip=$_SERVER['HTTP_X_REAL_FORWARDED_FOR'];}elseif(isset($_SERVER['HTTP_X_FORWARDED_FOR'])&&preg_match('/^([0-9]{1,3}.){...

百度编辑器UEditor借助Prism.js实现文章代码高亮显示实用教程

,需要把百度编辑器UEditor发布的代码高亮显示,想用Prism.js,但是Prism.js仅支持类似<pre><codeclass="codelanguage-代码语言">代码</code></pre>这种格式,而百度编辑器UEditor默认发布的代码则是:<preclass="brush:代码语言;toolbar:false">代码</pre>最好的办法就是前端显示的时候给转换一下,找了好多,都不理想,好歹从某一篇文章中提取出来一点可用的,特意写一下,以后备用!<script>var$codepre=$("pre[class]");if($codepre.length>0){for(vari=0;i<$codepre.length;i++){varitem=$codepre.eq(i);varlanguage="";item.attr("class").replace(/brush:([^;]+)/,function(a,b){language=b;});if(language){va...

php实现txt下载文件下载代码

{//echo"当前目录中,文件".$file."存在";header("Content-Disposition:attachment;filename=".$time.".txt");//告诉浏览器通过附件形式来处理文件header('Content-Length:'.filesize($file));//下载文件大小readfile($file);}else{echo"当前目录中,文件".$file."不存在";returnfalse;} ...

php禁止访问某个地区的IP

functioncheckIp(){$ip=egetip();$oldIp=getcvar('iplist');if($oldIp){Header("Location:".'/404.html');exit;}$setIps=ReturnPublicAddVar("jinyong_area");$citys=[];if(!empty($setIps)){if(strstr($setIps,'-')){$citys=explode('-',$setIps);}else{$citys=[$setIps];}//print_r($citys);exit;$res='';$res=file_get_contents("https://restapi.amap.com/v3/ip?key=7ad665ca654f32cb5c2e7363eeef36df56&ip=".$ip);$res=json_decode($res,true);$jinzhi=$citys;if($res['province']&&in_array($res['province'],$jinzhi))...

PHP实现随机图像功能

PHP随机图像实现的代码超级简单,短短四行就搞定了:<?php$img_array=glob('images/*.{gif,jpg,png,jpeg,webp,bmp}',GLOB_BRACE);if(count($img_array)==0)die('没找到图片文件。请先上传一些图片到'.dirname(__FILE__).'/images/文件夹');header('Content-Type:image/png');echo(file_get_contents($img_array[array_rand($img_array)]));?>以上的代码会查找 images 目录下的所有图片,并随机挑选出一张显示出来。...

php开发微信APP支付接口

1:用户在商户APP中选择商品,提交订单,选择微信支付。2:商户后台收到用户支付单,调用微信支付统一下单接口。参见【统一下单API】。3:统一下单接口返回正常的prepay_id,再按签名规范重新生成签名后,将数据传输给APP。参与签名的字段名为appid,partnerid,prepayid,noncestr,timestamp,package。注意:package的值格式为Sign=WXPay4:商户APP调起微信支付。api参见本章节【app端开发步骤说明】5:商户后台接收支付通知。api参见【支付结果通知API】6:商户后台查询支付结果。,api参见【查询订单API】首先呢我们需要拿到三个参数(appid,mch_id,key),这三个参数分别对应的是在微信开发平台中创建的移动应用appid,微信支付商户号,商户支付秘钥,详情看参考【支付结果通知API】然后我们先把统一下单所需要的参数列出来 $request_data=array('appid'=>C('WX_APPID'),#应用APPID'mch_id'=&g...

制作查询功能的软件,查找怎么做

标题:利用APP轻松实现制作需求,让生活更便捷正文:在现代社会,移动应用程序(APP)已经成为我们日常生活中不可或缺的一部分。从购物、社交到工作、娱乐,APP几乎可以满足我们各种各样的需求。而当我们需要寻找并制作一些特定的内容时,使用APP来查找和制作便成为了最方便快捷的选择。一、APP查找功能现如今,市场上有大量的应用程序可以帮助我们查找各类信息。无论是搜索引擎、社交媒体还是专业的搜索类APP,都可以帮助我们找到我们所需要的内容。由于APP所提供的搜索功能通常比普通搜索引擎更加精准和个性化,我们能够更快速地找到准确的信息。例如,当我们需要了解一家餐厅的地址、营业时间和评价时,我们可以使用美食类的APP来获取这些信息。此外,还有一些以特定领域为主题的APP,如旅游、健身、阅读等,其中提供了全面而专业的信息,满足用户各种领域的需求。二、APP制作功能除了帮助我们查找需要的内容外,APP还能提供一些制作功能。随着科技的不断进步,很多APP都具备了简单的制作工具,让用户可以轻松地实现一些创意和需求。例如,对于喜欢拍照和美化照片的人来说,很多手机相机APP都提供了各种滤镜、修图和特效功能,让我...

thinkphp5使用phpmailer进行发送邮件功能

1、使用composer工具安装,在tp5根目录下执行 默认使用1.0版本  composerrequirephpmailer/phpmailer 安装成功后显示下面目录 2、封装发送邮件方法我放置在了extra文件夹内function sendEmail($to, $title, $content){     $email=[         "send_email"=>"111113@qq.com", //这里是一个 发邮件用的邮箱  需要设置smtp相关        "host"=>"smtp.qq.com",   &nbs...
首页上一页12345...下一页尾页