2010-08-23 98 views
0

我可以使用什么算法在Java中创建加密程序?如果我想使用相同的密钥进行加密和解密,该怎么办?我可以在Java中使用什么算法进行加密?

例如:我输入Hello world并使用密钥guy,所以单词改成[email protected]。如果我想解密它,我必须使用相同的密钥(guy),因此它将再次变为hello world

+2

为了帮助您在Google上搜索时,您所描述的内容通常称为“对称密钥加密”。 – 2010-08-23 16:44:05

+1

我认为这个问题很有趣,因为这个问题在Java上放置了一个TM,但是没有将商标的名称大写为实际应用所需的名称。 – 2010-08-23 16:47:53

+0

抱歉oneal,我没有意识到这一点:D – WenZ 2010-08-23 17:06:11

回答

3

您可以使用AES

+0

感谢您的答复Dimitrov,我会用它来搜索AES ... – WenZ 2010-08-23 16:43:23

+0

@WenZ,尝试我已发布的链接。它包含一个样本。 – 2010-08-23 16:44:08

3

可以使用你想要的任何算法,如果你愿意实现它。如果你问算法Java提供的cryptography extension优惠(从this list):

  • AES
  • 河豚
  • DES
  • DESede
  • RC2,RC4,RC5
  • RSA

我相信所有这些都是对称(加密和解密密钥是相同的),除了RSA

+0

该链接是针对Java 1.4文档的。我没有环顾四周,但是您可能想要注释该链接或链接到该文档的更新版本。 – 2010-08-23 16:46:20

+0

@Thomas我在查找新文档时遇到了问题,但我在答案中添加了一个注释 – 2010-08-23 16:49:35

+1

您可能想检查一下以验证,但是http://download.oracle.com/javase/6/docs/technotes /guides/security/crypto/CryptoSpec.html似乎是您链接到的Java 6版本。 – 2010-08-23 17:01:47

1

我将坚持行业标准 - 三重DES(3DES)或AES,因此3DES是缓慢被AES取代。各种语言的库和源代码均可用,并经过测试和验证。

我会使用随机生成的密钥进行数据加密,并使用基于公钥/私钥对的非对称方法(RSA)分发这些密钥。

相关问题