16

我已经能够找到关于对称加密和散列的信息,但是我在查找关于 java 的任何类型的公钥加密的大量信息时遇到了很多麻烦。我想做的是制作一个非常简单的概念证明程序,它接受一个字符串(或者我想是一个文件),用公钥对其进行加密,然后用私钥对其进行解密。

任何教程链接或示例将不胜感激。我只想制作一些东西来演示如何在 Java 中使用公钥加密。

4

2 回答 2

13

通常,您使用公钥加密来加密对称密钥,部分原因是公钥加密非常慢。通常,您会向收件人发送以下内容,以便他们可以解密您的消息:

  1. 对称密钥,用接收者的公钥加密。
  2. 所用算法的参数,通常是对称密码的初始化向量。
  3. 使用的加密算法的标识符。
  4. 密文——实际消息,在对称密码下加密。

我发现JCE 文档中的示例代码足以让事情正常进行。

捆绑所有这些信息的标准格式是加密消息语法或 CMS,S/MIME 在电子邮件应用程序中使用它。我推荐使用Bouncy Castle 的图书馆;它们是可靠的,相当简单的,并且积极维护。参考文档有点弱,但它们确实提供了代码示例。

于 2008-12-03T20:53:16.997 回答
12

网上有很多关于这方面的资源。基本上它围绕着 KeyPairGenerator 类。

有关示例程序,请参见http://www.informit.com/articles/article.aspx?p=170967&seqNum=4 。

于 2008-12-03T20:36:56.967 回答