MD5哈希只能包含数字或仅包含字母吗?

Mar*_*ark 9 hash md5 crypt

我一直在研究,但我一无所知.我知道MD5可以同时包含数字和字母但是如果我发现MD5只有数字或只有字母的情况下它会破坏我的脚本

Jok*_*ius 16

给出仅数字md5哈希的几个第一个字符串的列表:

ximaz : 61529519452809720693702583126814 
aalbke : 55203129974456751211900188750366 
afnnsd : 49716523209578759475317816476053 
aooalg : 68619150135523129199070648991237 
bzbkme : 69805916917525281143075153085385 
Run Code Online (Sandbox Code Playgroud)

这是一个只有字母的人:

cbaabcdljdac : cadbfdfecdcdcdacdbbbfadbcccefabd
Run Code Online (Sandbox Code Playgroud)


use*_*own 13

你有32位数.如果我们假设所有密码均匀分布,则有10 ^ 32个组合,仅由数字密码组成,6 ^ 32个字母密码组合,总共16 ^ 32个组合.

在每次调用时,这会导致脚本失败的概率(10 ^ 32 + 6 ^ 32)/ 16 ^ 32.

 echo "scale=10;(10^32 + 6^32) / 16^32" |  bc 
.0000002938
Run Code Online (Sandbox Code Playgroud)

因此,一旦进入大约340万个案例,它就会失败.你经常想用它吗?

  • 正则表达式的一个小改进是`'s / ^([a-z0-9] {32})。* / \ 1 /'`,它明确要求32位数字。逗号不会执行您认为的操作。 (2认同)

wch*_*gin 5

从理论上讲,是的,MD5哈希(当转换为十六进制字符串时)只能包含十进制数字或仅包含字母.

在实践中,同样是:字符串ximaz产生MD5哈希值61529519452809720693702583126814.试试吧!

(感谢PHP Sadness的例子)