我想加密一个二进制文件。我的目标是防止任何人读取没有密码的文件。
具有相同 key 长度的 AES 或 Blowfish 哪个是更好的解决方案?我们可以假设攻击者拥有大量资源(软件、知识、金钱)来破解该文件。
最佳答案
可能 AES。 Blowfish 是 Twofish 的直接前身。 Twofish 是 Bruce Schneier 参加 AES 竞赛的作品。它被认为不如名为 Rijndael 的条目(即 AES 的前身)。
有趣的是:在比赛的某个时刻,所有参赛者都被要求对密码的排名发表意见。每个团队都选择自己的作品为最佳,这可能并不奇怪,但其他所有团队都选择 Rijndael 作为第二佳。
也就是说,Blowfish 与 AES 的基本目标存在一些基本差异,这些差异(可以说)在绝对安全性方面有利于 Blowfish。特别是,Blowfish 试图通过使初始 key 设置变得相当缓慢的操作来使暴力( key 耗尽)攻击变得困难。对于普通用户来说,这没什么影响(仍然不到一毫秒),但如果您每秒尝试数百万个 key 来破解它,则差异相当大。
但最终,我并不认为这是一个主要优势。我通常推荐 AES。我的下一个选择可能是 Serpent、MARS 和 Twofish。 Blowfish 会在这些之后出现(尽管我可能会在 Blowfish 之前推荐其他一些)。
关于security - AES 与 Blowfish 文件加密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4147451/