php md5PHP MD5函数是一种算法,它以任意长度的消息作为输入,并返回一个128位的指纹或消息作为结果。MD5是一种散列加密技术,可能有许多潜在的用途。哈希算法可用于压缩和加密数据,并可用于验证数据的完整性。当需要压缩和加密文件、消息或数据块时,开发人员可以使用PHP MD5字符串函数。流程结果是一个“MessageDigest”字符串,它用作数字签名。这些签名在使用私钥加密的安全数据传输应用程序中很常见。

需要保护您的应用程序?在Udemy.com获得PHP和加密入门

那么MD5是什么呢?

MD5代表“消息摘要算法5”。它是罗纳德·里维斯特教授在上世纪90年代早期发明的,作为MD4算法的继承者。它是一种加密散列的形式,其中算法接受任意长度的数据,并将其作为固定大小的散列值返回。这意味着要散列的消息可以是任何大小或长度,但结果将始终是固定长度。

在PHP中使用MD5

PHP MD5函数可以从PHP4开始使用。它的语法是

MD5(字符串,原始

字符串是必需的,RAW是可选的,如果为true = 16位十进制格式或false = 32 hex格式(默认)

PHP (MD5)示例代码

< ?php $str = "Hello";$str."
";echo "TRUE -原始16字符二进制格式:"。md5 (str美元,真的)”。< br > ";echo "FALSE - 32位十六进制数字:".md5($str)."
";? >

结果

字符串:您好

假 - 32字符十六进制号码:8B1A9953C4611296A827ABF8C47804D7

从Udemy.com开始学习PHP及其功能

哈希算法-一般用法

任何散列算法后面的一个目的,并且有很多,是生成数字签名或指纹,以验证消息的完整性。因此,通常用于验证在诸如因特网的不安全介质上传输的数据的完整性。与发件人的初始值不匹配的收到的哈希值清楚地指示数据已被篡改或损坏的渠道篡改。

使用哈希值的实际示例是从互联网下载大文件,例如Linux发行版。广告文件将具有分配给它的哈希值。下载完成后,收件人可以将接收的哈希值与广告值进行比较,以验证文件是相同的。例如,对等文件共享应用程序使用哈希值来识别在其网络上传播的文件。一个相同的文件将始终具有匹配的散列值。因此,散列算法可用于搜索和匹配相同的散列值。在文件共享应用程序的情况下,散列值用于标识相同的文件,而不是由其模糊的标题或拼写错误的标题,而是由文件的哈希值。

散列算法的另一个用途是验证邮件消息的完整性。例如,确保中间人没有拦截和篡改消息。另一个常用的用法是将密码以散列格式存储在计算机上。当用户输入密码时,软件对输入值进行散列,然后将结果与存储的散列值进行比较。有趣的一点是,哈希是一种单向加密方案。除非将散列与字典蛮力“猜测”进行比较,否则无法从散列派生密码。

MD5是强密码算法吗?

MD5是一个破碎的加密算法,PHP MD5功能应谨慎使用。最初发现MD5在中期九十年代中有潜在的缺陷,尽管这些被认为是微不足道的。但是,在2004年,研究人员能够从两个不同的文件源创建相同的哈希值。这被称为碰撞攻击,攻击者寻找具有相同哈希值的两个现有和不同文件。美国国土安全部宣布:“用户应避免使用MD5算法以任何容量。随着以前的研究表明,它应该被视为加密破损和不适合进一步使用”。

那么为什么MD5仍然是常见的?

MD5仍然用作验证消息或文件的手段。MD5仍然用于验证,但它不适合极其安全的要求。例如,哈希算法的建议用途之一是散列存储的密码。这已被加密方案(如河豚)所取代。PHP开发人员建议不要使用PHP MD5来加密密码,但它们指向算法的速度是其弱点。MD5是一种快速算法,但这不是使其固有不适合存储密码的原因。MD5只是一种破损的加密算法,可以使用现代计算电源和蛮力技术轻松克服。

MD5今天使用的另一个原因是某些环境不需要高安全性。这些环境只是需要停止休闲窥探,例如在管理员的显示器上看肩膀。在这种情况下,使用MD5散列密码确实减轻了风险并为目的服务。但是,有更好的方法可以同时实现这一和更高的安全性。不幸的是,由于无知,MD5仍然存在于使用中的使用情况,并且其严重缺陷不是常识,并且尚未从服务中撤销。

MD5仍然是一个目的,但每个PHP开发人员都必须意识到它不应该是一个网站的安全性源。

要了解PHP并编码安全环境,请参阅Udemy.com

PHP的顶级课程

PHP为初学者 - 成为PHP大师 - CMS项目
Edwin Diaz,编码教师解决方案
4.4 (19466)
畅销书
PHP初学者
Tim Buchalka的学习编程学院,Dave Hollingworth
4.6 (1515)
面向对象的PHP和MVC
布拉德Traversy
4.7 (3759)
完整的PHP OOP概念绝对初学者+项目
Srinivas Vanamala.
4.9 (314)
面向对象编程:面向初学者+项目
Edwin Diaz,编码教师解决方案
4.5 (3270)
PHP初学者:如何建立一个电子商务商店
Edwin Diaz,编码教师解决方案
4.7 (1571)
畅销书
使用PHPUnit进行PHP单元测试
戴夫霍灵沃斯
4.7 (1,070)
畅销书
PHP登录和注册系统-电子邮件确认激活
Edwin Diaz,编码教师解决方案
4.5 (794)
PHP为初学者2021第2部分:PDO,MYSQL,PHPMYADMIN
帕特里克•莫罗
4.9 (246)
评价最高
PHP与Laravel初学者-成为Laravel大师
Edwin Diaz,编码教师解决方案
4.4 (9937)
畅销书

更多的PHP课程

PHP学生还学习

让你的团队。领导行业。

通过Udemy为Business获取组织的在线课程和数字学习工具库的订阅。

请求一个演示