【发布时间】:2013-09-15 15:22:48
【问题描述】:
我很难理解这一点。例如,MD5 或 SHA1 如何对字符串进行散列并且只返回字母数字字符。我的意思是,如果我没有完全关闭,他们都或至少 MD5 将字符串转换为二进制,然后附加任何丢失的内容以便能够将其分割成 512 个字符的块。然后它执行一系列操作,其中一个是对每个块的 32 个单词中的一个进行 XOR。我的意思是,最后只得到字母数字字符不可能是纯粹的运气,XOR 必须产生其他东西?
有人可以向我解释一下,甚至提供一个小例子,说明有人在 java 或 php 中对字符串进行异或运算吗?
【问题讨论】:
-
希望我没有误会,但是 md5 总是返回 16 个字节 - 可以扩展为以十六进制表示的 32 个长度的字符串。
-
他们没有。你通常看到的是用十六进制(有时是base64)编码的二进制结果。
-
无论整数有多大,您都可以用十进制表示法只使用数字 0-9,或以二进制形式仅使用 0 和 1,或以十六进制形式使用 0-9 和 a -f.
标签: php javascript hash md5 sha