Java PBEWithMD5AndDES

时间:2009-08-16 16:58:34

标签: java encryption aes des

我正在使用基于密码的加密。我最初的想法是使用AES来加密包含密码的文件。原来基于密码的加密不支持AES。它使用DES。 AFAIK des不安全。 PBEWithMD5AndDES是否足够安全以推送我的数据,还是应该寻找其他实现?

3 个答案:

答案 0 :(得分:16)

从您的评论中可以看出,您要做的是使用基于密码的加密方案加密包含敏感信息的文件,并使用用户在解密时提供的密码。在这种情况下,敏感信息也恰好是密码,但这并不是真正相关的。 (您应该更新问题以使其更清晰)。

您正在做正确的事,您的问题只是SunJCE Java加密提供程序不支持AES进行基于密码的加密。您需要使用替代提供程序:例如,您可以将Bouncy Castle提供程序与算法"PBEWITHSHA256AND128BITAES-CBC-BC"一起使用。 (尽管有着异想天开的名字,Bouncy Castle备受尊重)。

至于“DES对我的数据是否足够安全”,如果你所保护的数据对攻击者的价值低于大约10,000美元,那么在2009年它可能就足够安全了。而在2014年,如果您的数据值得加密,答案就是否定。

答案 1 :(得分:3)

如果您有Java 6可用,那么您需要的一切都可用。查看此question并查看代码示例的已接受答案。由于您要加密文件,因此生成的iv应该预先添加到您正在编写密文的文件中,以便在解密期间可用。

答案 2 :(得分:-1)

您不应该以salted hash digests以外的任何形式保留密码。

然后,您应该使用操作系统权限系统,使得散列密码文件只能由验证密码的用户读取。