www(pp628 com)

导读 大家好,小苏来为大家解答以上问题。www,pp628 com很多人还不知道,现在让我们一起来看看吧!MD5加密,对吧?MD5的全称是Message-Digest

大家好,小苏来为大家解答以上问题。www,pp628 com很多人还不知道,现在让我们一起来看看吧!

MD5加密,对吧?

MD5的全称是Message-Digest Algorithm 5,是由麻省理工学院计算机科学实验室和RSA数据安全公司在90年代初发明的,由MD2、MD3和MD4发展而来。

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

MD5将任意长度的“字节串”转换成128bit的大整数,是一种不可逆的字符串转换算法。换句话说,即使你看到了源程序和算法描述,你也无法将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级的磁盘组,这个方法也

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

感兴趣的读者可以从这里获得MD5 (RFC 1321)的文本。http://www.ietf.org/rfc/rfc1321.txt

本文到此结束,希望对大家有所帮助。

免责声明:本文由用户上传,如有侵权请联系删除!