我正在构建一个需要在本地存储敏感数据的应用程序,这些数据使用用户提供的密码的 SHA-256 进行加密。它使用 AES 进行加密。
我担心某些用户可能会选择使用弱密码,这可能会被获取该文件并想要读取内容的攻击者暴力破解。
我在想,为了获得散列,必须在该密码上附加一个随机数,并且散列的第一个 X 位设置为零的第一个随机数,这是必须使用的密钥。如果 X 设置为 20,则应平均计算大约 100 万次哈希,以从用户提供的密码中获取有效密钥。
这样,用户可能需要 1 秒来计算密钥(取决于他们的机器),这使得通过猜测密码来暴力破解它变得极其困难。
当然,这是我想出来的,我想这就是我不应该使用它的原因。是否有任何经过广泛测试的替代品?