MD5(Message-Digest algorithm 5)是一种单向的128位“哈希”算法。MD5是一种可以将一个单词转换为MD5哈希的方法,但通过MD5哈希永远无法找到原始单词。
这意味着什么?
当您想存档密码时,MD5非常有用。因为一个密码,例如“12345678”,会生成MD5哈希“25d55ad283aa400af464c76d713c07ad”(始终不带引号),但如果有人发现了MD5哈希,(理论上)将无法找到生成它的密码。
实际用途
一位重视操作真实性的网站管理员会要求用户创建一个密码。他输入密码,然后发送保存时,脚本会生成MD5哈希,并且只有这个哈希会被存档。这样,即使管理员进入数据库并查看密码,他看到的也只是MD5哈希。当用户再次访问网站并输入密码时,脚本将生成与第一次相同的MD5哈希,并将其与存档的哈希进行比较。如果生成的MD5哈希与存档的相同,则允许访问;如果不同,则拒绝访问。
示例
下面是一些字符“单词”或密码,以及它们的MD5哈希
|
文本字符 |
MD5哈希 |
|
12345678 |
25d55ad283aa400af464c76d713c07ad |
|
silviolobo |
e8571a7f8d9d0e95b2448784e0b02396 |
|
Amor |
5da2297bad6924526e48e00dbfc3c27a |
|
Fé |
01e973a860fe82b0bae4c529c857348c |
|
a |
0cc175b9c0f1b6a831c399e269772661 |
MD5 用于长字符、文件,有什么不同?
MD5 可用于签名程序或文件。一个长MD5的示例。
|
我们天上的父,愿人都尊你的名为圣,愿你的国降临,愿你的旨意行在地上,如同行在天上。我们日用的饮食,今日赐给我们;免我们的债,如同我们免了人的债;不叫我们遇见试探,救我们脱离凶恶。阿们。 |
|
MD5哈希:99d155a830d49cab342b6e539156c6c1 |
我将删除“amém”中的重音符号,并检查MD5哈希会是什么样子。
|
我们天上的父,愿人都尊你的名为圣,愿你的国降临,愿你的旨意行在地上,如同行在天上。我们日用的饮食,今日赐给我们;免我们的债,如同我们免了人的债;不叫我们遇见试探,救我们脱离凶恶。Amem。 |
|
MD5哈希:a0d86fea9f6c226fb357863616e82751 |
我保持文本相同,但在第一个文本中“amém”带有重音符号,MD5哈希是“99d155a830d49cab342b6e539156c6c1”,而在第二个文本中,当我输入“amém”时,MD5哈希变成了“a0d86fea9f6c226fb357863616e82751”。
一个重音符号就会改变MD5哈希,因此它非常适合验证文件和文档的完整性。您会在互联网上找到许多文件,例如磁盘映像(Linux、程序),它们会附带MD5值,用于比较您“下载”的文件是否完整。
安全!是否有可能恢复生成MD5的“原始”值?
理论上,不可能!但在互联网上有一些工具可以作为字典使用。每次有人输入一个单词时,它都会生成MD5哈希并保存在数据库中。将来,当有人输入一个MD5哈希时,它会在数据库中搜索并显示过去注册的单词。
一个例子是 http://md5.networkcore.eti.br/
如果您运气极好,您可能会找到某个密码。但是,不要浪费时间尝试通过修复完整性错误来恢复文件。
特性
md5哈希是一个32个字符的字母数字字符串。
在PHP中可以使用md5()函数轻松使用。例如:md5($string)。
一个残酷的疑问:两个MD5哈希会相等吗?
是的,但这种情况极其罕见,非常非常罕见。此外,考虑到它的用途,这并不是一个问题。
说明:MD5由RSA Data Security开发,大致上是使用每个字符进行的一次复杂计算,无论是密码、程序代码还是文件;MD5哈希是我们称之为该计算结果的方式。
MD5(Message-Digest algorithm 5)是一种单向的128位“哈希”算法。MD5是一种可以将一个单词转换为MD5哈希的方法,但通过MD5哈希永远无法找到原始单词。
这意味着什么?
当您想存档密码时,MD5非常有用。因为一个密码,例如“12345678”,会生成MD5哈希“25d55ad283aa400af464c76d713c07ad”(始终不带引号),但如果有人发现了MD5哈希,(理论上)将无法找到生成它的密码。
实际用途
一位重视操作真实性的网站管理员会要求用户创建一个密码。他输入密码,然后发送保存时,脚本会生成MD5哈希,并且只有这个哈希会被存档。这样,即使管理员进入数据库并查看密码,他看到的也只是MD5哈希。当用户再次访问网站并输入密码时,脚本将生成与第一次相同的MD5哈希,并将其与存档的哈希进行比较。如果生成的MD5哈希与存档的相同,则允许访问;如果不同,则拒绝访问。
示例
下面是一些字符“单词”或密码,以及它们的MD5哈希
|
文本字符 |
MD5哈希 |
|
12345678 |
25d55ad283aa400af464c76d713c07ad |
|
silviolobo |
e8571a7f8d9d0e95b2448784e0b02396 |
|
Amor |
5da2297bad6924526e48e00dbfc3c27a |
|
Fé |
01e973a860fe82b0bae4c529c857348c |
|
a |
0cc175b9c0f1b6a831c399e269772661 |
MD5 用于长字符、文件,有什么不同?
MD5 可用于签名程序或文件。一个长MD5的示例。
|
我们天上的父,愿人都尊你的名为圣,愿你的国降临,愿你的旨意行在地上,如同行在天上。我们日用的饮食,今日赐给我们;免我们的债,如同我们免了人的债;不叫我们遇见试探,救我们脱离凶恶。阿们。 |
|
MD5哈希:99d155a830d49cab342b6e539156c6c1 |
我将删除“amém”中的重音符号,并检查MD5哈希会是什么样子。
|
我们天上的父,愿人都尊你的名为圣,愿你的国降临,愿你的旨意行在地上,如同行在天上。我们日用的饮食,今日赐给我们;免我们的债,如同我们免了人的债;不叫我们遇见试探,救我们脱离凶恶。Amem。 |
|
MD5哈希:a0d86fea9f6c226fb357863616e82751 |
我保持文本相同,但在第一个文本中“amém”带有重音符号,MD5哈希是“99d155a830d49cab342b6e539156c6c1”,而在第二个文本中,当我输入“amém”时,MD5哈希变成了“a0d86fea9f6c226fb357863616e82751”。
一个重音符号就会改变MD5哈希,因此它非常适合验证文件和文档的完整性。您会在互联网上找到许多文件,例如磁盘映像(Linux、程序),它们会附带MD5值,用于比较您“下载”的文件是否完整。
安全!是否有可能恢复生成MD5的“原始”值?
理论上,不可能!但在互联网上有一些工具可以作为字典使用。每次有人输入一个单词时,它都会生成MD5哈希并保存在数据库中。将来,当有人输入一个MD5哈希时,它会在数据库中搜索并显示过去注册的单词。
一个例子是 http://md5.networkcore.eti.br/
如果您运气极好,您可能会找到某个密码。但是,不要浪费时间尝试通过修复完整性错误来恢复文件。
特性
md5哈希是一个32个字符的字母数字字符串。
在PHP中可以使用md5()函数轻松使用。例如:md5($string)。
一个残酷的疑问:两个MD5哈希会相等吗?
是的,但这种情况极其罕见,非常非常罕见。此外,考虑到它的用途,这并不是一个问题。
说明:MD5由RSA Data Security开发,大致上是使用每个字符进行的一次复杂计算,无论是密码、程序代码还是文件;MD5哈希是我们称之为该计算结果的方式。



