我应该担心加密 AES 的暴力破解密码吗?

信息安全 密码 哈希 密码破解
2021-09-07 09:54:27

我正在构建一个需要在本地存储敏感数据的应用程序,这些数据使用用户提供的密码的 SHA-256 进行加密。它使用 AES 进行加密。

我担心某些用户可能会选择使用弱密码,这可能会被获取该文件并想要读取内容的攻击者暴力破解。

我在想,为了获得散列,必须在该密码上附加一个随机数,并且散列的第一个 X 位设置为零的第一个随机数,这是必须使用的密钥。如果 X 设置为 20,则应平均计算大约 100 万次哈希,以从用户提供的密码中获取有效密钥。

这样,用户可能需要 1 秒来计算密钥(取决于他们的机器),这使得通过猜测密码来暴力破解它变得极其困难。

当然,这是我想出来的,我想这就是我不应该使用它的原因是否有任何经过广泛测试的替代品?

1个回答

.. 使用用户提供的密码的 sha256 加密。

您不应该使用简单的散列从密码中创建密钥。这些哈希针对速度进行了优化,因此可以进行暴力破解。相反,您应该使用经过验证的密钥派生函数,如PBKDF2或类似函数。有关更多详细信息,请参阅有关密钥派生函数的 Wikipedia 文章