暴力破解 16 个字符的密钥需要多长时间

Kin*_*ere 0 security authentication encryption bash performance

我使用以下命令在 bash 中生成了一个 16 个字符的字母数字密钥:

key=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 16 | head -n 1)
Run Code Online (Sandbox Code Playgroud)

我正在考虑使用此密钥来加密密码。

攻击者通常需要多长时间才能找到可以解密使用此方法加密的密码的密钥?

The*_*ini 7

每个字符有 62 种可能性,16 个字符。这意味着 62^16 (47672401706823533450263330816) 次试验更糟的情况,或平均一半。如果攻击者每秒可以进行 10 亿次试验,那就意味着 47672401706823533450 秒,大约是 1511681941489 年。我认为这是很好的保护。你甚至可以砍掉几个字符,但仍然感觉很安全。

请注意,如果您从大脑中选择了 16 个字符的密码(而不是使用 /dev/urandom),我不会说同样的话:人类的大脑并不擅长选择好的加密密钥。