2015-12-02 76 views
0

我已经生成在bash一个16字符的字母数字密钥使用下面的命令:多久蛮力16个性秘密密钥

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

我想使用这个密钥来加密口令。

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

+0

那么,你的加密算法是什么? ROT13?这将是O(1)。 aes256 O(infinity) –

+0

如果你问它是否是加密安全的,那么[答案是肯定的](http://security.stackexchange.com/questions/3936/is-a-rand-from-dev-urandom -secure换一个登录键)。 –

+0

我在C中使用OpenSSL EVP库,在这里找到:https://www.openssl.org/docs/manmaster/crypto/EVP_EncryptInit.html。另外,@Assaf Lavie,你可以评论暴力方法吗? – Kingamere

回答

2

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

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