我目前正在运行名为http://nn.pe的网址缩短网站,并使用此代码的6字符随机哈希
$charset = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789';
return substr(str_shuffle($charset), 0, 6);
我想知道有多少不同的字符串使用这些字符和整数?
你不需要准确,我猜是不到一百万。
答案 0 :(得分:3)
62^6 = 56,800,235,584
在6个字符的哈希值中,[a-zA-Z0-9]中有62种组合。
答案 1 :(得分:3)
我只是在PHP 5.3.8源代码中查找了它。使用php_rand()
。这是等效于rand()
的C.我对str_shuffle
非常小心!它(通常)会为getrandmax()
输出提供尽可能多的可能性,在Windows上可以是32,768。
在大多数系统中,理论上最大值为21亿。
答案 2 :(得分:3)
如果洗牌是像Fisher Yates那样适当的洗牌,你有(26 * 2 + 10)!/(26 * 2 + 10-6)! = 62!/ 56! = 44,161,653,680可能性,因为我们没有替代品。
答案 3 :(得分:1)
五十六亿,八亿。
对于散列中的每个给定位置,您有26 + 26 + 10个选项。这为您提供了62 ^ 6个可能的字符串。 62 ^ 6 = 56 800 235 584。
答案 4 :(得分:0)
62^6 = 56,800,235,584
组合。
但是,您必须控制碰撞。