我一直在研究,但我一无所知。我知道 MD5 可以同时包含数字和字母,但是如果我发现 MD5 只有数字或只有字母的情况,它目前会破坏我的脚本
问问题
20896 次
6 回答
18
仅给出数字 md5 哈希的几个第一个字符串的列表:
ximaz : 61529519452809720693702583126814
aalbke : 55203129974456751211900188750366
afnnsd : 49716523209578759475317816476053
aooalg : 68619150135523129199070648991237
bzbkme : 69805916917525281143075153085385
这是一个只有字母的:
cbaabcdljdac : cadbfdfecdcdcdacdbbbfadbcccefabd
于 2013-05-13T11:20:30.030 回答
15
你有 32 位数字。如果我们假设所有密码均等分布,则有 10^32 种组合,仅由数字密码组成,6^32 种仅由字母密码组成,总共有 16^32 种组合。
这使得您的脚本在每次调用时失败的概率为 (10^32 + 6^32) / 16^32。
echo "scale=10;(10^32 + 6^32) / 16^32" | bc
.0000002938
因此,大约有 340 万例它会失败。你想多久使用一次?
于 2011-07-26T05:47:41.587 回答
1
MD5 旨在成为一个很好的哈希函数(目前已损坏,不应用于安全应用程序),这意味着它会产生随机输出,以便利用适合输出空间的所有可能值。这些字母和数字是输出的十六进制表示。是的,有时您可能会得到仅包含字母或仅包含数字的输出,但大多数时候您会同时拥有这两者。
如果我必须解析 MD5 的十六进制表示,我肯定会花时间来支持那些相当罕见的情况,即输出仅为字母或数字。
于 2011-07-26T05:41:24.343 回答
1
我相信您正在使用 MD5 哈希的十六进制表示。MD5 哈希实际上是 128 位字符串。大多数工具以十六进制表示形式打印它们,相当于 32 个十六进制数字。十六进制数字使用 0-9 和 af。
例子:
susam@swift:~$ echo -n "foo" | md5sum
acbd18db4cc2f85cedef654fccc4a4d8 -
于 2011-07-26T05:42:20.390 回答
1
我知道这是一个非常古老的问题,但我发现另外三个字符串在他们的 md5 哈希中只有数字,而谷歌在搜索这些哈希时找不到任何东西,所以我认为可能值得发布这些:
Ioktak : 54948232518148653519995784773259
'99x\`b0x\'b : 24034969117462298298932307218853
uttuJ## : 74616072929762262275291990931711
于 2017-02-12T15:17:30.190 回答