2015-12-02 78 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),我不會說同樣的事情:人類大腦不擅長選擇好的加密密鑰。