首页 > 编程知识 正文

哈希算法被破解(MD5算法如何被破解)

时间:2023-05-06 01:57:44 阅读:2119 作者:898

介绍MD5加密算法的基本信息。MD5的全称是消息摘要算法5。它是由麻省理工学院和RSA数据安全公司的计算机科学实验室在20世纪90年代初发明的,由MD2、MD3和MD4发展而来。

消息摘要(Message-Digest)一般指消息的哈希变换,即把任意长度的字节串变换成一定长度的大整数。请注意,我使用了“字节字符串”这个词,而不是“字符串”,因为这个转换只与字节的值有关,与字符集或编码方法无关。

MD5将任意长度的“字节串”转换为128位的大整数,是一种不可逆的字符串转换算法。换句话说,即使看到源程序和算法描述,也无法将MD5的值转换回原始字符串。数学上来说,是因为有无限多的原始字符串,有点像没有反函数的数学函数。

MD5的典型应用是为消息(字节字符串)生成指纹,以防止它被“篡改”。例如,您在一个名为readme.txt的文件中编写一个段落,为这个readme.txt生成一个MD5值并记录下来,然后您可以将这个文件传播给其他人。如果其他人修改了文件中的任何内容,您将在重新计算该文件的MD5时找到它。如果有第三方认证机构,MD5还可以防止文档作者的‘抵赖’,也就是所谓的数字签名应用。

MD5也广泛应用于加密和解密技术中。在许多操作系统中,用户的密码由MD5值(或其他类似算法)保存。当用户登录时,系统将用户输入的密码计算成MD5值,然后与系统中保存的MD5值进行比较,但系统并不“知道”用户的密码是什么。

一些黑客破解这个密码的方法是一种叫做“运行字典”的方法。字典的获取方式有两种,一种是日常收集的作为密码使用的字符串表,另一种是通过排列组合的方法生成的。首先通过MD5程序计算这些字典项的MD5值,然后在这个字典中搜索目标MD5值。

即使假设密码最大长度为8,密码只能是字母和数字,总共26 26 10=62个字符,字典中排列组合的项数为P (62,1) P (62,2).P (62,8),已经是天文数字了。为了存储这个字典,需要TB类磁盘组,这个方法。

在许多电子商务和社区应用程序中,管理用户帐户是最常用的基本功能之一。尽管许多Application Server提供了这些基本组件,但许多应用程序开发人员更喜欢使用关系数据库来管理用户,以获得更大的管理灵活性。偷懒的方式是,用户的密码往往是纯文本或简单转换后直接存储在数据库中。因此,这些用户的密码对于软件开发人员或系统管理员来说可以说是保密的。本文旨在介绍MD5 Java Bean的实现,同时给出一个用MD5处理用户账号密码的例子。这种方法使管理员和程序员看不到用户的密码,尽管他们可以初始化它们。但重要的一点是保护用户的密码设置习惯。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。