我一直在研究,但我一无所知.我知道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万个案例,它就会失败.你经常想用它吗?
从理论上讲,是的,MD5哈希(当转换为十六进制字符串时)只能包含十进制数字或仅包含字母.
在实践中,同样是:字符串ximaz产生MD5哈希值61529519452809720693702583126814.试试吧!
(感谢PHP Sadness的例子)