我正在使用基于密码的加密。我最初的想法是使用 AES 加密包含密码的文件。原来基于密码的加密不支持 AES。它使用 DES。AFAIK des 不安全。PBEWithMD5AndDES 是否足够安全以推送我的数据,还是我应该寻找另一种实现方式?
问问题
26829 次
3 回答
16
从您的评论中可以看出,您想要做的是使用基于密码的加密方案加密包含敏感信息的文件,并使用用户在解密时提供的密码。在这种情况下,敏感信息也恰好是密码,但这并不相关。(您可能应该更新问题以使其更清楚)。
您做对了,您的问题只是 SunJCE Java 加密提供程序不支持 AES 进行基于密码的加密。您需要使用替代提供程序:例如,您可以将Bouncy Castle提供程序与 algorithm 一起使用"PBEWITHSHA256AND128BITAES-CBC-BC"
。(尽管名字异想天开,Bouncy Castle 却备受推崇)。
至于“DES 对我的数据是否足够安全”,如果您要保护的数据对攻击者来说价值不到 10,000 美元,那么早在 2009 年它可能就足够安全了。而在 2014 年,如果您的数据值得加密,答案是否定的。
于 2009-08-16T22:11:22.290 回答
3
如果您有可用的 Java 6,那么您需要的一切都可用。查看此问题并查看代码示例的公认答案。由于您要加密文件,因此生成的 iv 应该添加到您正在写入密文的文件中,以便在解密期间可用。
于 2009-08-18T05:36:29.877 回答