已知长度的十六进制密码容易破解吗?

我有以下PHP代码:

$password = bin2hex (openssl_random_pseudo_bytes (16));

它会生成这样的随机密码:

fe6fdebf293e5ec5214cc33fbc632d77

我的问题很简单,假设十六进制使用16个不同的字符并且密码的长度为32个字符,则该密码的可能组合数为16 ^ 32吗?还是因为OpenSSL仅生成16个字节,这是16 ^ 16?

换一种方式,由于十六进制的性质,这样的十六进制密码能否更容易被破解?

dunhuangheisha 回答:已知长度的十六进制密码容易破解吗?

一个字节(八位)具有2 ^ 8个可能的组合。 16个字节(8 * 16位)具有2 ^(8 * 16)= 2 ^ 128个可能的组合。

以任何形式表示这些组合(纯二进制,十六进制字符串,十进制,base64编码的二进制等)不能更改可能组合的数量。

如果您用其他方式嘲弄他们也没关系。 32位十六进制字符串具有相同数量的组合:

32个字符,每个字符16个变体= 16 ^ 32 =(2 ^ 4)^ 32 = 2 ^(4 * 32)= 2 ^ 128。

这并不奇怪,因为从16个字节到32个字符的十六进制字符串之间存在一对一的转换,反之亦然。

本文链接:https://www.f2er.com/3088001.html

大家都在问