您的位置  > 互联网

关于MD5加密MD5的典型应用是对一段信息(-)

MD5 (.tar.gz) =

这是 .tar.gz 文件的数字签名。 MD5将整个文件视为一个大文本消息,并通过其不可逆的字符串转换算法生成这个唯一的MD5消息摘要。 为了让读者直观地了解MD5的应用,作者通过例子和例子简单描述了其工作流程:

众所周知,地球上的每个人都有自己独特的指纹,这往往成为公安机关识别犯罪分子最值得信赖的方法; 同样,MD5 可以为任何文件(无论其大小、格式或数量)生成指纹。 同样唯一的“数字指纹”,如果有人对文件名进行任何更改,其MD5值,也就是对应的“数字指纹”就会发生变化。

我们经常在一些软件下载网站的软件信息中看到MD5值。 它的作用是,我们下载软件后,可以使用专门的软件(如MD5检查等)对下载的文件做一次MD5。 验证以确保我们获得的文件与网站提供的文件相同。 利用MD5算法进行文件验证的解决方案广泛应用于软件下载网站、论坛数据库、系统文件安全等。

MD5的典型应用是生成(指纹)一段(字节串)以防止其被“篡改”。 例如,您在名为 .txt 的文件中写入一段文字,并为该 .txt 生成 MD5 值并记录下来。 然后您可以将此文件传播给其他人。 如果别人修改了文件中的任何内容,当你重新计算这个文件的MD5时就会发现(两个MD5值不一样)。 如果有第三方认证机构,使用MD5还可以防止文件作者的“抵赖”。 这就是所谓的数字签名应用。

MD5还广泛用于操作系统的登录认证,如Unix、各种BSD系统登录密码、数字签名等诸多方面。 例如,在UNIX系统中,用户的密码使用MD5(或其他类似算法)散列后存储在文件系统中。 用户登录时,系统对用户输入的密码进行MD5哈希运算,然后与文件系统中存储的MD5值进行比较,判断输入的密码是否正确。 通过这些步骤,系统可以在不知道用户密码明码的情况下判断用户登录系统的合法性。 这可以防止具有系统管理员权限的用户知道用户的密码。 MD5将任意长度的“字节串”映射成一个大整数,很难通过此推断出原始字符串。 也就是说,即使你看到了源程序和算法描述,也无法将一个 MD5 值转换回原来的字符串。 从数学的角度来看,是因为原字符串有无限多个。 这有点像没有反函数的数学函数。 因此,如果遇到md5密码的问题,更好的办法是:可以使用本系统中的md5()函数重新设置一个密码,比如admin,用生成的hash值覆盖原来的hash值即可密码字符串。 。

正是因为这个原因,黑客最常用的密码破解方法之一就是一种被称为“字典跑”的方法。 获取字典有两种方法。 一种是日常收集用作密码的字符串表,另一种是使用排列组合方法生成的。 首先使用MD5程序计算这些字典项的MD5值,然后使用目标的MD5值在这个字典中进行搜索。 我们假设密码的最大长度为 8 个字节。 同时密码只能是字母和数字,总共26+26+10=62个字符。 排列形成的字典的项数为P(62, 1)+P(62,2)….+P(62,8),这已经是一个天文数字了。 存储这个字典需要一个太字节的磁盘阵列,而且这个方法也是有前提的。 只有能够获取目标账户密码的MD5值,才有可能实现这一点。 这种加密技术在UNIX系统中得到广泛应用,这也是UNIX系统比一般操作系统更加健壮的重要原因。