gpt4 book ai didi

encryption - 使用弱密码,bcrypt或SHA-256 + AES-256加密文件?

转载 作者:行者123 更新时间:2023-12-04 13:43:41 25 4
gpt4 key购买 nike

我从一个弱密码(例如8个小写字符)和一个文件开始。我需要使用该密码来加密该文件。结果必须是安全的,以防已知攻击。

方法1:我可以使用SHA-256对密码进行哈希处理,然后将生成的哈希和文件用作AES-256的输入,从而为我提供了一个加密文件。我知道SHA-256和AES-256都非常快。这会使文件容易受到暴力攻击吗?

例如,可以抓取一个预先计算的SHA-256哈希表的彩虹表,并假设它是一个很小的文件,并且密码很弱,请尝试在合理的时间内使用该表中的每个哈希值对AES-256进行解密(几个月,并使用专门的硬件)。

方法2:使用bcrypt。如果我理解正确的话,bcrypt比SHA-256 + AES-256更适合加密文件,因为它的 key 生成方案具有导致 key 更强的工作因素。还是我错了?

我见过的Ruby和Python实现(包装器?)专注于使用bcrypt作为密码的哈希方案,而不是密码本身。我甚至可以使用bcrypt散列弱通行证并在“一步”中加密文件吗?

方法3:使用bcrypt散列密码,使用该散列和文件作为AES-256的输入,为我提供加密的文件。这样可以解决“ key 生成速度太快”的问题。 (假设有问题。)但是,bcrypt散列的长度为448位,而AES-256需要一个256位的 key 。天真的解决方案是简单地丢弃哈希的尾随位,并将其用作AES-256的 key 。我不会走这条路,因为我对密码学了解不足,无法知道后果如何。

编辑:我不能给通行证加盐,因为这是针对脱机应用程序的。 IE。没有合理的存放盐的地方。我可以对通行证加盐,并将未加密的盐与加密的文件一起存储。如果说数据库遭到破坏,则盐在本质上几乎是公开的/可见的。盐的目的是防止彩虹 table 攻击。感谢Nemo,吼叫。

最佳答案

方法4:使用PKCS#5(PBKDF2可以通过密码+您选择的用于使用该 key 进行加密的密码来得出 key ),最好是其他人的实现。

而且不要忘记盐。 (您将其与加密的数据一起存储。它仅需要8个字节左右。)

关于encryption - 使用弱密码,bcrypt或SHA-256 + AES-256加密文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6229136/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com