首页 > 后端开发 > 正文

php中函数总结 PHP中MD5函数漏洞总结

2024-11-11 10:11:34 | 我爱编程网

php中函数总结 PHP中MD5函数漏洞总结相关内容,小编在这里做了整理,希望能对大家有所帮助,关于php中函数总结 PHP中MD5函数漏洞总结信息,一起来了解一下吧!

本文目录一览:

php中函数总结 PHP中MD5函数漏洞总结

PHP中MD5函数漏洞总结

本文首发于个人博客: n0usec.top


一、MD5算法


MD5全名消息摘要算法(Message-Digest Algorithm 5),是一种密码散列函数,能将任意大小的数据转换为一个固定的128位(16字节)哈希值,确保信息传输的一致性和完整性。它的核心原理是将原始数据通过一系列计算过程,生成固定长度的哈希值。 我爱编程网


二、PHP中MD5函数的安全问题


1.PHP的比较运算符


在PHP中,比较运算符用于比较两个值是否相等或不相等。它们分为等值比较(==)和全值比较(===)。


等值比较(==):当两个值类型相同时,如果它们的值相同,则返回TRUE。


全值比较(===):不仅比较值是否相同,还检查它们的数据类型是否相同,如果两者都相同则返回TRUE。


2.MD5函数及漏洞利用


PHP中的MD5函数用于生成哈希值,文档中对其有详细定义。


漏洞利用示例:



  • “0E”绕过:通过在输入字符串前加上“0E”,利用PHP解释器将所有以“0E”开头的哈希值视为0,导致不同字符串经过MD5处理后,若以“0E”开头,PHP会误判为相同。

  • 数组绕过:利用GET请求传递数组参数,如“a[]=1&b[]=2”,通过构造特定数组结构,绕过MD5验证。

  • MD5碰撞:利用MD5碰撞生成工具,创建两个哈希值相同的字符串,通过URL编码后POST提交,实现绕过验证。


通过上述方法,可以利用PHP中MD5函数的安全漏洞,实现绕过验证或进行恶意操作。关键在于了解MD5算法特性和PHP的比较规则,进而设计针对性的攻击策略。

php中函数总结 PHP中MD5函数漏洞总结

php随机数函数

在PHP中,随机数(Random Number)是指一组伪随机数(Pseudo-random Number),即看起来随机的数字序列,但实际上是由一个算法生成的。PHP提供了一些内置函数,可以用来生成伪随机数,这些函数可以用于各种应用程序,如游戏、密码学、模拟等。



以下是一些PHP中常用的生成随机数的函数:


1、rand()函数:生成一个指定范围内的随机整数。例如,要生成一个1到10之间的随机整数,可以使用rand(1, 10)函数。


2、mt_rand()函数:生成一个更安全的随机整数。与rand()函数不同,mt_rand()函数使用更高级的随机数生成算法。例如,要生成一个1到10之间的随机整数,可以使用mt_rand(1, 10)函数。


3、random_int()函数:生成一个指定范围内的安全随机整数。这个函数会调用系统提供的安全随机数生成器,生成更加安全的随机数。例如,要生成一个1到10之间的随机整数,可以使用random_int(1, 10)函数。


4、random_bytes()函数:生成指定长度的随机字节序列。这个函数可以用于生成加密密钥等安全应用场景。例如,要生成一个16字节的随机字节序列,可以使用random_bytes(16)函数。


在使用随机数时,需要注意保证生成的随机数是足够随机的,以防止恶意攻击者通过猜测生成的随机数来破解系统。因此,在生成随机数时,应该使用足够的随机源,并且避免在算法中使用可预测的输入。

php中函数总结 PHP中MD5函数漏洞总结

PHP处理数组常用的几个函数

我爱编程网(https://www.52biancheng.com)小编还为大家带来PHP处理数组常用的几个函数的相关内容。

一、数组操作的基本函数
数组的键名和值
array_values($arr); 获得数组的值
array_keys($arr); 获得数组的键名
array_flip($arr); 数组中的值与键名互换(如果有重复前面的会被后面的覆盖)
in_array("apple",$arr); 在数组中检索apple
array_search("apple",$arr); 在数组中检索apple ,如果存在返回键名
array_key_exists("apple",$arr); 检索给定的键名是否存在数组中
isset($arr[apple]): 检索给定的键名是否存在数组中
数组的内部指针
current($arr); 返回数组中的当前单元
pos($arr); 返回数组中的当前单元
key($arr); 返回数组中当前单元的键名
prev($arr); 将数组中的内部指针倒回一位
next($arr); 将数组中的内部指针向前移动一位
end($arr); 将数组中的内部指针指向最后一个单元
reset($arr; 将数组中的内部指针指向第一个单元
each($arr); 将返回数组当前元素的一个键名/值的构造数组,并使数组指针向前移动一位
list($key,$value)=each($arr); 获得数组当前元素的键名和值
数组和变量之间的转换
extract($arr);用于把数组中的元素转换成变量导入到当前文件中,键名当作变量名,值作为变量值
注:(第二个参数很重要,可以看手册使用)使用方法 echo $a;
compact(var1,var2,var3);用给定的变量名创建一个数组
二、数组的分段和填充
数组的分段
array_slice($arr,0,3); 可以将数组中的一段取出,此函数忽略键名
array_splice($arr,0,3,array("black","maroon")); 可以将数组中的一段取出,与上个函数不同在于返回的序列从原数组中删除
分割多个数组
array_chunk($arr,3,TRUE); 可以将一个数组分割成多个,TRUE为保留原数组的键名
数组的填充
array_pad($arr,5,'x'); 将一个数组填补到制定长度
三、数组与栈
array_push($arr,"apple","pear"); 将一个或多个元素压入数组栈的末尾(入栈),返回入栈元素的个数
array_pop($arr); 将数组栈的最后一个元素弹出(出栈)
四、数组与列队
array_shift($arr);数组中的第一个元素移出并作为结果返回(数组长度减1,其他元素向前移动一位,数字键名改为从零技术,文字键名不变)
array_unshift($arr,"a",array(1,2));在数组的开头插入一个或多个元素
五、回调函数
array_walk($arr,'function','words'); 使用用户函数对数组中的每个成员进行处理(第三个参数传递给回调函数function)
array_mpa("function",$arr1,$arr2); 可以处理多个数组(当使用两个或更多数组时,他们的长度应该相同)
array_filter($arr,"function"); 使用回调函数过滤数组中的每个元素,如果回调函数为TRUE,数组的当前元素会被包含在返回的结果数组中,数组的键名保留不变
array_reduce($arr,"function","*"); 转化为单值函数(*为数组的第一个值)
六、数组的排序
通过元素值对数组排序
sort($arr); 由小到大的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
rsort($arr); 由大到小的顺序排序(第二个参数为按什么方式排序)忽略键名的数组排序
usort($arr,"function"); 使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)忽略键名的数组排序
asort($arr); 由小到大的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
arsort($arr); 由大到小的顺序排序(第二个参数为按什么方式排序)保留键名的数组排序
uasort($arr,"function"); 使用用户自定义的比较函数对数组中的值进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)保留键名的数组排序
通过键名对数组排序
ksort($arr); 按照键名正序排序
krsort($arr); 按照键名逆序排序
uksort($arr,"function"); 使用用户自定义的比较函数对数组中的键名进行排序(function中有两个参数,0表示相等,正数表示第一个大于第二个,负数表示第一个小于第二个)
自然排序法排序
natsort($arr); 自然排序(忽略键名)
natcasesort($arr); 自然排序(忽略大小写,忽略键名)
七、数组的计算
数组元素的求和
array_sum($arr); 对数组内部的所有元素做求和运算
数组的合并
array_merge($arr1,$arr2); 合并两个或多个数组(相同的字符串键名,后面的覆盖前面的,相同的数字键名,后面的不会做覆盖操作,而是附加到后面)
“+”$arr1+$arr2; 对于相同的键名只保留后一个
array_merge_recursive($arr1,$arr2); 递归合并操作,如果数组中有相同的字符串键名,这些值将被合并到一个数组中去。如果一个值本身是一个数组,将按照相应的键名把它合并为另一个数组。当数组 具有相同的数组键名时,后一个值将不会覆盖原来的值,而是附加到后面
数组的差集
array_diff($arr1,$arr2); 返回差集结果数组
array_diff_assoc($arr1,$arr2,$arr3); 返回差集结果数组,键名也做比较
数组的交集
array_intersect($arr1,$arr2); 返回交集结果数组
array_intersect_assoc($arr1,$arr2); 返回交集结果数组,键名也做比较
八、其他的数组函数
range(0,12); 创建一个包含指定范围单元的数组
array_unique($arr); 移除数组中重复的值,新的数组中会保留原始的键名
array_reverse($arr,TRUE); 返回一个单元顺序与原数组相反的数组,如果第二个参数为TRUE保留原来的键名
//srand((float)microtime()*10000000); 随机种子触发器
array_rand($arr,2); 从数组中随机取出一个或 多个元素
shuffle($arr); 将数组的顺序打乱
求课吧有很多关于PHP编程方面的教程

以上就是php中函数总结 PHP中MD5函数漏洞总结全部内容了,了解更多相关信息,关注我爱编程网。更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
标签: PHP
与“php中函数总结 PHP中MD5函数漏洞总结”相关推荐
PHP中MD5函数漏洞总结(php MD5的定义用法)
PHP中MD5函数漏洞总结(php MD5的定义用法)

PHP中MD5函数漏洞总结本文首发于个人博客:n0usec.top一、MD5算法MD5全名消息摘要算法(Message-DigestAlgorithm5),是一种密码散列函数,能将任意大小的数据转换为一个固定的128位(16字节)哈希值,确保信息传输的一致性和完整性。它的核心原理是将原始数据通过一系列计算过程,生成固定长度的哈希值。二、PHP中MD5函数的安全问题

2024-11-30 20:50:23
PHP函数分享—100个最常用的PHP函数 PHP中MD5函数漏洞总结
PHP函数分享—100个最常用的PHP函数 PHP中MD5函数漏洞总结

100个最常用的PHP函数(记得收藏哦)以下是100个最常用的PHP函数列表,它们是PHP编程语言中常用的内置函数。这些函数按照使用频率从1到100进行排序。请注意,还有约4500个函数未在此列表中排名,所有这些数据来源于对1900个PHP开源项目的审查,使用了Exakat静态分析引擎的1.2.5版本。平均值代表在单个项目中使用这些函数的次数,有些是封装使用,而有些则是主要功能。例如,

2025-01-15 04:12:23
求大佬,解决一个php的自定义加密函数的 PHP中MD5函数漏洞总结
求大佬,解决一个php的自定义加密函数的 PHP中MD5函数漏洞总结

求大佬,解决一个php的自定义加密函数的md5按MD5算法,从字符串得到32位的HASH。urlencode把URL做成可以放进地址栏的形式urldecode把放进地址栏的东西还原成URLbase64_encode按BASE64算法,把字符串(可以是二进制的)加密,得到长度与输入有关,比输入长很多,得到的字符范围是可显示的。base64_decode按BA

2024-11-04 12:56:12
php输出函数总结 php中的几个输出函数
php输出函数总结 php中的几个输出函数

php中的几个输出函数1echo();2print();3die();4printf();5sprintf();6print_r();7var_dump();1echo()可以同时输出多个字符串,可以多个参数,并不需要圆括号,无返回值。2print()只可以同时输出一个字符串,一个参数,需要圆括号,有返回值,当其执行失败时返flase.print的用法和C语言很像,所以会对输

2024-11-26 04:08:14
php的函数总结 php随机数函数
php的函数总结 php随机数函数

php随机数函数在PHP中,随机数(RandomNumber)是指一组伪随机数(Pseudo-randomNumber),即看起来随机的数字序列,但实际上是由一个算法生成的。PHP提供了一些内置函数,可以用来生成伪随机数,这些函数可以用于各种应用程序,如游戏、密码学、模拟等。以下是一些PHP中常用的生成随机数的函数:1、rand()函数:生成一个指定范围内的随机整数。例如

2025-01-23 01:49:38
php常用数学函数 MySQL常用的函数,可总结回顾下
php常用数学函数 MySQL常用的函数,可总结回顾下

MySQL常用的函数,可总结回顾下在MySQL开发中,函数的应用可以显著提升效率,解决复杂问题。本文重点介绍MySQL常用函数,包含字符串、数值、日期时间及聚合函数四大类。在MySQL数学类函数中,例如ABS()可以获取数值的绝对值,ROUND()实现数值四舍五入,而MOD()则用于获取除法余数。MySQL日期时间类函数,如CURRENT_DATE()获取当前日期,DATE_ADD(

2025-01-04 08:17:14
PHP处理数组常用的几个函数 CTF中常见的PHP知识点总结
PHP处理数组常用的几个函数 CTF中常见的PHP知识点总结

PHP处理数组常用的几个函数一、数组操作的基本函数数组的键名和值array_values($arr);获得数组的值array_keys($arr);获得数组的键名array_flip($arr);数组中的值与键名互换(如果有重复前面的会被后面的覆盖)in_array("apple",$arr);在数组中检索applearray_search("apple",$arr)

2025-02-19 03:53:26
PHP处理数组常用的几个函数(php知识框架总结)
PHP处理数组常用的几个函数(php知识框架总结)

PHP处理数组常用的几个函数一、数组操作的基本函数数组的键名和值array_values($arr);获得数组的值array_keys($arr);获得数组的键名array_flip($arr);数组中的值与键名互换(如果有重复前面的会被后面的覆盖)in_array("apple",$arr);在数组中检索applearray_search("apple",$arr)

2024-11-10 12:12:07