发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116272.html原文链接:https://javaforall.cn
php 正则验证字符串是否为数字 方法一: php中利用正则表达式验证字符串是否为数字一件非常容易的事情,最主要的是如何写好正则表达式以及掌握正则表达式的写法,在此利用正则表达式的方式来列举一下判断数字的方法...如数字正则过滤 if(preg_match("/^\d*$/",$fgid)) echo('是数字'); else echo('不是数字'); 或者用函数 if(is_numeric($fgid))...[0-9]*)$ 验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?...$ 验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ 验证非零的正整数:^\+?...:^.{3}$ 验证由26个英文字母组成的字符串:^[A-Za-z]+$ 验证由26个大写英文字母组成的字符串:^[A-Z]+$ 验证由26个小写英文字母组成的字符串:^[a-z]+$ 验证由数字和26
使用非对称加密算法,如RSA 利用私钥对消息进行加密,然后发送者将消息和数字签名一起发送给接收者。接收者使用发送者的公钥来验证数字签名是否有效。...建议您采取其他附加措施来增强代码的安全性和完整性。 PHP中的签名和验签 一、签名与验签的概念 签名是指在数字签名算法的基础上,对数据进行加密处理,生成一段特定的字符串。...三、PHP中的验签函数 在PHP中,验签函数主要包括hash_hmac和openssl_verify函数。...然后使用hash_equals函数判断签名结果是否相同,进而判断验签是否成功。...然后使用openssl_verify函数判断签名结果是否正确,进而判断验签是否成功。 未经允许不得转载:肥猫博客 » php生成数字签名的几种方法
str_pad — 使用另一个字符串填充字符串为指定长度 ? 该函数返回 input 被从左端、右端或者同时两端被填充到制定长度后的结果。...1、input长度比pad_length长度大 2、pad_length给负数的时候,给0的时候呢 3、pad_string给空字符串的时候呢 4、可以填充的最大长度是什么,有没有限制 5、两边填充,给定...可以看到,如果pad_length<0 或小于原字符串的时候(包括pad_length=0),都返回原字符串。...当填充字符串为空字符串的时候,会触发警告信息,返回NULL 好了,前3个问题都找到答案了。来看后面几个问题 ?...,或者pad_length<0的时候返回原字符串 2、pad_length最大长度=INT_MAX+str_len(input) 3、pad_string 不能传入空字符串,否则触发警告,返回NULL
知识分享之Golang——用于快速判断指定字符串是否存在于一个数组中的工具函数 背景 知识分享之Golang篇是我在日常使用Golang时学习到的各种各样的知识的记录,将其整理出来以文章的形式分享给大家...开发环境 系统:windows10 语言:Golang golang版本:1.18 内容 本节我们分享一个用于快速判断指定字符串是否存在于一个数组中的工具函数 以下是我们使用到的函数 func In(
:echo $a,$b 应用场景:输出一些字符串 2)print是一个函数,它只有一个参数,有返回值,不能输出对象和数组 应用场景:输出一些参数值 3)print_r()是一个函数,有返回值...,能输出对象和数组 应用场景:打印一些数组或者对象 4)var_dump是一个函数,有返回值 应用场景:能够返回数据的类型,打印一切值 5)printf()是一个函数,有返回值,格式化输出...) 将数字转换成货币格式 3、trim,rtrim,ltrim 字符串的去除空格以及指定的字符 trim($string,'str') 去除整个字符串的指定的字符,如果不填则是默认去掉空格等... 应用场景:配合substr计算用户的长度截取字符串 2)strpos某个字符出第一次现在字符串的第几位并返回位数(区分大小写) 应用场景:返给前端一个全路径时候,判断是否包含http,如果包含则不拼接...2)hex2bin 将一个字符以16进制转成2二进制,bin2hex正好相反 应用场景:以上都是传输参数进行加密以及验签常用的加密函数,包含单向和双向加解密 14、pase_str,pase_url
是一个函数,有返回值 应用场景:能够返回数据的类型,打印一切值 5)printf()是一个函数,有返回值,格式化输出 应用场景:微信的api接口的参数拼接 for example: $str = 'string...23.45 6)number_format(num,int=要保留的小数位,如果不写将四舍五入) 将数字转换成货币格式 3、trim,rtrim,ltrim 字符串的去除空格以及指定的字符 for example...应用场景:配合substr计算用户的长度截取字符串 2)strpos某个字符出第一次现在字符串的第几位并返回位数(区分大小写) 应用场景:返给前端一个全路径时候,判断是否包含http,如果包含则不拼接...应用场景:比如我们有一个需求是将一些字段统一为一样长度的字符串,然后传输到后台处理,可以使用这个 13、sha1,md5,hex2bin,bin2hex 1)sha1和md5 加密函数 2)hex2bin...将一个字符以16进制转成2二进制,bin2hex正好相反 应用场景:以上都是传输参数进行加密以及验签常用的加密函数,包含单向和双向加解密 14、pase_str,pase_url,pathinfo,http_build_query
() 加密的数据,并且将结果保存至第二个参数中 你可以用该函数来校验消息是否是私钥拥有者写的。...openssl_public_encrypt使用公钥加密数据 该函数可以用来加密数据,供该公钥匹配的私钥拥有者读取。 它也可以用来在数据库中存储安全数据。...你可以用该函数来解密只对你可用的数据。...openssl_sign生成签名,通过使用与之关联的私钥生成加密数字签名来计算指定的签名 openssl_verify验证签名,通过使用关联的公钥验证指定数据的签名是否正确, 通过返回int 1 openssl_free_key...$config['thirdPublicKey']; } /** * 是否使用安全base64需要参考第三方验签的解析方案,如果也是php推荐使用安全方式 * @param
深入浅出MySQL数据库.png 字符函数库: 函数库基础 安装字符串函数库 字符串函数库列表 函数是可以实现特定功能,可以重复执行的代码段。 函数分 内置函数 和 用户函数。...内置函数是指PHP本身提供的各类库函数。 字符串函数库,是PHP核心的组成部分 获取字符串长度:strlen函数 int strlen(string $str) utf-8中文一个代表3个。...image.png Itrim函数,用于实现删除字符串开始位置的空格或其他字符,用于删除开始的空格,后面不管。 rtrim函数用于实现删除字符串结束位置的空格,或者是其他字符。...四舍五入函数,round函数用于实现四舍五入 数字格式化:number_format函数 ? image.png 格式化日期: ? image.png ? image.png ?...PHP核心函数库之文件目录函数库.png 文件操作 文件目录函数库:文件信息相关,文件操作相关,内容操作相关。
PHP常量,用于存储不改变的数据信息,声明和使用常量 define()函数声明常量 constant()函数获取常量的值 defined()函数判断常量是否已经被定义 预定义变量 PHP中提供了很多预定义变量...布尔型是PHP常用数据类型,字符串连接的字符序列,由数字,字母和符号组成。...函数库 empty检查变量是否为空 gettype获取变量类型 intval获取变量的整数值 is_array是否为数据 is_int, is_numeric是否为数字 isset是否变量被设置...,是否被赋值 print_r打印 settype设置变量的类型 字符串函数库 addcslashes 实现转移字符串中的字符 explode字符串指定的字符串或字符切开 ltrim 删除字符串开头的连续空白...数学函数库 ceil 返回不小于参数value值的最小整数 mt_rand 返回随机数中的一个值 mt_srand 配置随机数的种子 rand 产生一个随机数 round 四舍五入 fmod
is_numeric 测试是否是数字 整型 浮点型 is_callable() 测试是否是函数,语言结构则会返回false 9.语言结构 echo()不是函数,虽然后面也可以加括号,和函数类似 print...,php是自身带的函数来实现,func_num_args()可以获取当前传入函数的参数个数,func_get_args()得到传入的参数具体值,以数组的方式储存,再用array_sum(func_get_args...() 将' " & 转成实体,防止对数据库造成破坏 26.正则表达式 正则表达式是用于描述字符排列和匹配模式的一种语法规则,它主要用于字符串的模式分割,匹配,查找及替换操作,在PHP...参数有两种,1.多个数字,2.多个数字组成的数组 1.max(10,5,8);取最大值 2.min();取最小值 3.mt_rand();随机去一个值,参数是一个范围 4....ceil();距该数的上一个整数,不是四舍五入 5.floor();距该数的下一个整数 6.pi();取圆周率函数 7.round();四舍五入函数 29.日期函数 1.time
我喜欢b这个数字,就保留起来,不告诉你们(私钥),然后我告诉大家,a是我的公钥。 我有一个文件,不能让别人看,我就用1加密了。...当然具体的过程要稍微复杂一些。用私钥来加密数据,用途就是数字签名。 公钥和私钥是成对的,它们互相解密。 公钥加密,私钥解密。 私钥数字签名,公钥验证。 ?...这里写图片描述 下面贴上php中使用公钥私钥加密解密的代码以及其中需要注意的地方: 首先公钥和私钥存放的方式有文件和字符串的形式.不过作为小白要注意的是,公钥私钥无论是放在文件中还是字符串里面,千万要记得分行...,然后就是代码中需要用到的加密解密了,加签解签了.其中用到的函数可以直接在php手册加密中查看http://php.net/manual/zh/refs.crypto.php 首先是公钥加密:这里用到的函数是...用到的函数(openssl_get_privatekey) private function rsa_sign($data){ //私钥加签 $res = openssl_get_privatekey
这就引入了电子签名,常见的加签/验签算法有RSA、AES 和 MD5 等。...加签/验签算法原理 以 MD5 为例, MD5 算法的核心是利用 Hash 的不可逆性,被加密后的密文无法通过解密函数来得到明文,并且一旦明文被改变,加密后的密文也是完全不一样的。...比如带加签的报文如下所示: { "trade_no": "192376547821987234", "mch_id": "180212110446000000", "bank_card_no...MD5 加签需要有一个秘钥, 服务端和客户端的秘钥需要一致,这也是对称加密算法的特性,所以支付机构需要把秘钥传输给入驻的商户。...我们可以对传输的秘钥做一层加密,使用 RSA 加密算法,把加密后是秘钥传输给商户。基于MD5 的特性,只有明文相同,MD5 加密后的密文就相同,于是黑客有可能通过撞库的方式来破解明文。
PHP Date/Time 简介 Date/Time 函数允许您从 PHP 脚本运行的服务器上获取日期和时间。您可以使用 Date/Time 函数通过不同的方式来格式化日期和时间。...注释:这些函数依赖于服务器的本地设置。使用这些函数时请记住要考虑夏令时和闰年。 安装 PHP Date/Time 函数是 PHP 核心的组成部分。无需安装即可使用这些函数。...) “90.83” PHP 5.0 定义和用法 date() 函数格式化本地日期和时间,并返回格式化的日期字符串。...(用三个字母表示) n – 月份的数字表示,不带前导零(1 到 12) t – 给定月份中包含的天数 L – 是否是闰年(如果是闰年则为 1,否则为 0) o – ISO-8601 标准下的年份数字 Y...PHP 5.1.1:新增标准日期/时间格式常量,用于指定 format 参数。 常用的几个参数 Y 4位数字年,y为2位数字,如99即1999年 m 数字月份,前面有前导0,如01。
印象比较深的是第一次遇到这个面试题的时候,也是第一次听到“重放攻击”这个词的时候,一脸蒙蔽,于是我就连蒙带猜的,朝着接口幂等性的方向去答了。 结果就凉了。...加密的目的:为了保证传输信息的隐私性,不被别人看到传输的具体内容,只能让接收方看到正确的信息。 加签的目的:消息接收方验证信息是否是合法的发送方发送的,确认信息是否被其他人篡改过。...接受方收到报文,验签之后,把随机串拿出来,来判断一下这个随机串是否已经处理过了。比如判断一下是否存在于 Redis 里面。...另外,最关键的一句话一定要说:时间戳和随机串得参与到加签逻辑中去。 这个很好理解吧? 接受方看报文是否被篡改,看的就是签名是否能匹配上。 而签名的结果是和参与签名的字段的值有直接关系的。...我们推荐生成随机数算法如下:调用随机数函数生成,将得到的值转换为字符串。 阿里API网关 看完微信支付,再看看阿里的 API 网关是怎么防止重放攻击的。
有关于加签验签的,大家可以看下我这篇文章哈,程序员必备基础:加签验签 2. 以规范日志为荣,以乱打日志为耻 我们的业务逻辑代码需要日志保驾护航。...以参数校验为荣,以运行异常为耻 参数校验是每个程序员必备的基本素养。你的方法处理,必须先校验参数。比如入参是否允许为空,入参长度是否符合你的预期长度。因此,我们要以参数校验为荣。...比如你的数据库表字段设置为varchar(16),对方传了一个32位的字符串过来,如果你不校验参数,插入数据库直接异常了。 我们要以运行时异常为耻。...以优化代码为荣,以复制粘贴为耻 日常开发中,很多程序员在实现某个功能时,如果看到老代码有类似的功能,他们很喜欢复制粘贴过来。这样很容易产生重复代码,所以我们要以复制粘贴为耻。...以定义常量为荣,以魔法数字为耻 大家平时工作中,是不是经常看到魔法数字。魔法数字(Magic Number)是指拥有特殊意义,却又不能明确表现出这种意义的数字。
码代码时容易用到的基础函数总结。...字符串/i',$data,$out); // PHP把JSON对象转字符串不转码输出 json_encode($results, JSON_UNESCAPED_UNICODE); //PHP设置最大运行时间...count(); //获取变量中的字符串值,可以理解为把变量转换成字符串类型 strval(); //查询数组里是否存在着指定的健名,返回true和false array_key_exists(键名...mysqli_data_seek($xx, n); //将数组转为json格式 json_encode(); //将json格式转为数组对象 json_decode($xxx); //检测变量是否为数字...引入的文件执行完成方可继续执行下去,如果require执行文件时出现错误,则会返回一个致命错误,并带掉程序。
今天我们且不说高深的“全局唯一ID”的生成方案,我们说一个简单的,如何生成一个唯一的,随机的,数组字母组成的字符串。 学习时间 PHP 有一个内置函数 uniqid,用于生成一个唯一的ID。...该函数结构形式: string uniqid([ string $prefix = ""[, bool $more_entropy = false]] ) 用于获取一个带前缀、基于当前时间微秒数的唯一ID...上述函数会生成一个区间位于 [$min, $max] 的随机数字。然后调用该函数生成指定长度的字符串。 ?...函数 crypto_rand_secure 函数的实现方法,在PHP标准函数中,可以使用 rand / mt_rand 函数替代。...写在最后 本文深入探讨了生成随机数字,进而生成指定长度的字符串,实现函数并进行了测试。大家可以在机器环境进行测试。
方法一:自定义函数 我们可以自己手动编写一个函数来实现此功能,这个函数可以将数字作为第一个参数,将其转换为罗马并返回。 注:大多数算法只能在1-4999的范围内工作,如果使用特大数,脚本将失败。...方法二:使用Romans库 Romans库是一个非常简单的PHP罗马数字库,允许您将整数转换为其罗马表示,反之亦然。...注:如果没有该库,请先需要安装;安装好Romans库后,就能够使用其命名空间并使用可帮助转换数字的函数。...Romans库包含一对简单的过滤器,用于将具有罗马数字的字符串转换为表示输入为十进制的int,将十进制int转换为具有罗马数字作为结果的字符串。...此方法将使用罗马数字的字符串作为第一个参数,并返回一个带数值的整数: <?
领取专属 10元无门槛券
手把手带您无忧上云