【问题标题】:How long to brute force 16 character secret key暴力破解 16 个字符的密钥需要多长时间
【发布时间】:2015-12-02 16:54:58
【问题描述】:

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

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

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

攻击者通常需要多长时间才能暴力破解使用此方法加密的密码来解密密钥?

【问题讨论】:

  • 好吧,你的加密算法是什么?腐烂13?这将是 O(1)。 aes256 O(无穷大)
  • 如果你问它是否是加密安全的,那么the answer is yes
  • 我正在使用 C 语言中的 OpenSSL EVP 库,可在此处找到:openssl.org/docs/manmaster/crypto/EVP_EncryptInit.html。另外,@Assaf Lavie,你能评论一下暴力破解方法吗?
  • 嗯,不是无限的,但除非在数学上取得根本性突破或有人发现算法存在缺陷,否则 aes256 实际上是牢不可破的。
  • 如果他们击败了 1:gazillions 的赔率并第一次尝试,他们可能应该跑出去买彩票,因为他们即将有一颗流星落在他们的头上,同时不小心出发了下次他们喜欢闹剧书上的东西时,世界的核储备。

标签: bash performance security authentication encryption


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-12
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多