2012-02-29 135 views
2

我是PGP的新手,想要在一个需求中实现加密/解密。我搜索了它并决定使用Boynce Castle算法。但是当我试图理解它时,我对如何获得.pkr和.skr文件感到困惑。我刚刚下载了需要的jar和程序,当试图运行它时,显示我找不到文件。我自己并不知道我创建了.pkr和.skr文件(从.txt转换而来),但我认为它应该采用某种格式,并且应该由某种机制生成。有人可以解释一下吗?我可以如何继续..?公钥和私钥文件(.pkr,.skr)

回答

0

这些文件都是公共和私人(在OpenPGP的术语秘密)分别钥匙扣。它们包含公钥和私钥的集合。您通常会生成一个密钥对(一对公钥和私钥)或几个密钥对供您自己使用,而其他人也这样做。然后他们可以给你他们的公开的密钥,并且你从这些密钥中创建一个公共密钥环。公用密钥环然后用于加密收件人的数据或验证其他人的daa签名。

私人钥匙圈是从你的,你生成私钥组成。您使用私钥匙来签署数据,您可以将相应的公钥提供给其他人,以便他们可以为您加密数据(然后使用私钥解密)。

我相信BouncyCastle的具有密钥生成功能,或者您也可以使用GnuPG应用程序或PGP桌面生成密钥。

0

您可以检查与BouncyCastle的库船OpenPGP的密钥生成的例子。

它们分别位于:

[充气城堡源] \ SRC \有机\ BouncyCastle的\ OpenPGP的\例子\ RSAKeyPairGenerator.java

[充气城堡源] \ SRC \有机\ BouncyCastle的\ OpenPGP的\实例\ DSAElGamalKeyRingGenerator.java

使用该密钥

实施例的代码可以被发现在:

[充气城堡源] \ SRC \有机\ BouncyCastle的\ OpenPGP的\例子\ KeyBasedFileProcessor.java

4

如果你有相同的Windows计算机作为PGP命令行安装PGP桌面,安装PGP桌面为默认的目录,然后PGP命令行会自动查找和使用您现有的钥匙圈。如果您未使用PGP桌面产品中的PGP密钥环,则需要创建空白密钥环文件。这样做,打开命令提示符,然后键入以下命令:

pgp --create-keyrings 

这将创建的默认密钥环位置的pubring.pkr(公共钥匙圈)和secring.skr(私人钥匙圈)文件。对于Windows,它位于我的文档> PGP文件夹中。本文将使用[]来标识您需要输入的特定于您的个人密钥的信息。

之后,您将需要创建一个密钥对。若要使用PGP命令行请按照下列步骤一对密钥:

在命令行中输入:

pgp --gen-key [user ID] --key-type [key type] --bits [bits #] --passphrase [passphrase] 

注:包含空格必须包含引号内的任何信息。

示例:以下示例将向您展示如何使用密码“my passphrase”为ACME Corp的员工Joe User创建2048位RSA密钥。

pgp --gen-key "Joe User" --key-type RSA --bits 2048 --passphrase "my passphrase" 

PGP命令行现在将生成您的密钥对。您应该看到您的密钥ID(即0X12345678)以及密钥已成功生成的消息。

注:要显示你的新密钥输入以下命令:

pgp --list-keys 

这将显示所有被你的钥匙圈中的密钥。

密钥对生成并识别后,重要的是导出密钥对的公共部分(公钥),以便其他人可以导入您的公钥并加密给您。注意:将公钥导出到文件后,分发起来很容易。例如,您可以将其附加到电子邮件中,将公共密钥块文本粘贴到电子邮件正文(用记事本打开)中,或复制到CD中。要导出您的公钥,您需要获得关于密钥的信息以识别它,这将在本文档中称为(输入)。您可以使用密钥ID(即0x12345678),用户ID(即“Joe用户”)或部分用户ID(即Joe)。要导出密钥,请执行下列操作:

pgp --export (input) 

PGP命令行通过导出密钥为ASCII铠甲(.ASC)文件到命令行上当前活动目录响应。

以下示例将向您介绍如何使用密钥ID和用户ID导出公钥。

pgp --export 0x12345678 
pgp --export "Joe User" 

您可以从ASCII Armor文件(.asc)或文本文件中导入公钥,对于这两个进程都是相同的。包含要导入的密钥的文件必须位于当前目录中。与导出密钥一样,这将在示例中被称为(输入)。如果公钥和私钥存在于文件中,它们将被导入。如果正在导入的密钥已经存在于本地密钥环中,则密钥将被合并。导入密钥从文件:

pgp --import (input) 

PGP命令行回应如下:乔User.asc:进口键{0:键输入为0×12345678 Joe用户}

下面的例子将告诉你如何导入键从ASCII Armor文件(.asc)和包含PGP密钥块的文本文件中获取。

pgp --import "Joe User.asc" 
pgp --import "PGP Joe.txt" 
+0

这些命令不再工作了:I – dipl0 2017-10-03 19:50:56