gpt4 book ai didi

hash - 如何将短语和单词转换为 MD5 哈希?

转载 作者:行者123 更新时间:2023-12-04 06:55:49 27 4
gpt4 key购买 nike

任何人都可以向我解释如何将“我想买一些牛奶”这样的短语转换为 MD5?我阅读了关于 MD5 的维基百科文章,但给出的解释超出了我的理解:

"MD5 processes a variable-length message into a fixed-length output of 128 bits. The input message is broken up into chunks of 512-bit blocks (sixteen 32-bit little endian integers)"



“十六个 32 位小端整数”对我来说已经很难了。我查看了有关小端的 Wiki 文章,有点不明白。

但是,该 Wiki 文章中的一些短语及其 MD5 哈希值的示例非常好:

MD5("The quick brown fox jumps over the lazy dog") = 9e107d9d372bb6826bd81d3542a419d6

MD5("The quick brown fox jumps over the lazy dog.") = e4d909c290d0fb1ca068ffaddf22cbd0



任何人都可以使用一些非常简单的例子向我解释这个 MD5 算法是如何工作的吗?

而且,也许您知道一些软件或代码可以将短语转换为其 MD5。如果是,请告诉我。

最佳答案

忘掉字节序吧:它只是一种信息编码方式的方式名称。

让我们跟着维基百科MD5文章。您从输入消息开始。它可以是任意长的:2GB ISO 文件的 MD5 散列是常规创建的,就像十几个字符长的字符串(例如密码)的散列一样。

散列将包含在寄存器 a 中, b , cd .这些寄存器使用特殊值 ( h0-h3 ) 进行初始化。

该算法将输入分成 16 个 4 字节块(“16 个 32 位小端字”),并对部分应用程序应用特定的逻辑操作(函数 FGHI )输入和寄存器的当前状态 a , b , cd .它对每组 16 个 4 字节块执行 64 次。

处理完所有块后,a 中还剩下什么, b , cd是最终的哈希值,您可能会通过调用 md5sum testfile.txt 获得该哈希值。 .

更新:

如果您只想能够计算哈希值,那么自己实现它是没有意义的,因为它可能已经针对所有重要的语言完成并进行了测试:

Python :

import md5
md5.new("Nobody inspects the spammish repetition").digest()

SQL ( MySQL ):
SELECT MD5('Nobody inspects the spammish repetition')

Java :
String s="Nobody inspects the spammish repetition";
MessageDigest m=MessageDigest.getInstance("MD5");
m.update(s.getBytes(),0,s.length());
System.out.println(new BigInteger(1,m.digest()).toString(16));

等等。

关于hash - 如何将短语和单词转换为 MD5 哈希?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2574357/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com