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

问题描述 投票:0回答:1

我有以下PHP代码:

$password = bin2hex (openssl_random_pseudo_bytes (16));

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

fe6fdebf293e5ec5214cc33fbc632d77

我的问题很简单,考虑到十六进制使用16个不同的字符并且密码的长度为32个字符,此密码的可能组合数为16 ^ 32吗?还是因为OpenSSL仅生成16个字节而导致16 ^ 16?

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

passwords hex cracking
1个回答
0
投票

一个字节(八位)具有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个字符的十六进制字符串之间存在一对一的转换,反之亦然。

© www.soinside.com 2019 - 2024. All rights reserved.