我需要通过使用至少128位密钥加密来存储一些敏感数据.我调查了javax.crypto包,发现有某些Cipher名称,比如PBEWithMD5AndDES或PBEWithSHA1AndDESede,它提供高达56位和80位的加密(http://en.wikipedia.org/wiki/DESede).
我引用了其他人的帖子,但那些主要使用RSA,据我所知,RSA通常适用于加密通信数据(使用私钥 - 公钥对).我的需求是不同的,我只想存储数据并通过解密来检索它.因此,我不需要任何私钥 - 公钥对.
如果您对此有任何疑问,请告诉我.
使用高级加密标准(AES).它支持128,192或256位的密钥长度.
该算法很简单.Sun Java网站有一节介绍如何在Java中进行AES加密.
来自维基百科......
...高级加密标准(AES),也称为Rijndael,是美国政府采用的加密标准的分组密码.它已被广泛分析,现在已在全球范围内使用,与其前身数据加密标准(DES)的情况一样......
因此,根据经验,您不应该使用DES或其变体,因为它正在逐步淘汰.
截至目前,最好使用AES.还有其他选择,如Twofish,Blowfish等.请注意,Twofish可被视为Blowfish的高级版本.