我可以使用什么算法在Java中创建加密程序?如果我想使用相同的密钥进行加密和解密,该怎么办?我可以在Java中使用什么算法进行加密?
例如:我输入Hello world
并使用密钥guy
,所以单词改成[email protected]
。如果我想解密它,我必须使用相同的密钥(guy
),因此它将再次变为hello world
。
我可以使用什么算法在Java中创建加密程序?如果我想使用相同的密钥进行加密和解密,该怎么办?我可以在Java中使用什么算法进行加密?
例如:我输入Hello world
并使用密钥guy
,所以单词改成[email protected]
。如果我想解密它,我必须使用相同的密钥(guy
),因此它将再次变为hello world
。
你可以使用你想要的任何算法,如果你愿意实现它。如果你问算法Java提供的cryptography extension优惠(从this list):
我相信所有这些都是对称(加密和解密密钥是相同的),除了RSA
该链接是针对Java 1.4文档的。我没有环顾四周,但是您可能想要注释该链接或链接到该文档的更新版本。 – 2010-08-23 16:46:20
@Thomas我在查找新文档时遇到了问题,但我在答案中添加了一个注释 – 2010-08-23 16:49:35
您可能想检查一下以验证,但是http://download.oracle.com/javase/6/docs/technotes /guides/security/crypto/CryptoSpec.html似乎是您链接到的Java 6版本。 – 2010-08-23 17:01:47
你可以使用任何symmetric key algorithm
我将坚持行业标准 - 三重DES(3DES)或AES,因此3DES是缓慢被AES取代。各种语言的库和源代码均可用,并经过测试和验证。
我会使用随机生成的密钥进行数据加密,并使用基于公钥/私钥对的非对称方法(RSA)分发这些密钥。
为了帮助您在Google上搜索时,您所描述的内容通常称为“对称密钥加密”。 – 2010-08-23 16:44:05
我认为这个问题很有趣,因为这个问题在Java上放置了一个TM,但是没有将商标的名称大写为实际应用所需的名称。 – 2010-08-23 16:47:53
抱歉oneal,我没有意识到这一点:D – WenZ 2010-08-23 17:06:11