我是PGP的新手,希望在一个要求中实现加密/解密。我用Google搜索并决定使用Boynce Castle算法。但是当我试图理解它时,我对如何获得.pkr和.skr文件感到困惑。我刚下载了所需的罐子和程序,当试图运行它时显示我找不到文件。我自己也没有意识到我创建了.pkr和.skr文件(从.txt转换)但我认为它应该采用某种格式并且应该由某种机制生成。有人可以解释一下这个吗?我该怎么办......?
答案 0 :(得分:4)
如果您在与PGP命令行相同的Windows计算机上安装了PGP桌面,并且您将PGP Desktop安装到默认目录,则PGP命令行将自动查找并使用您现有的密钥环。如果您未使用PGP Desktop产品中的PGP Keyrings,则需要创建空白密钥环文件。为此,请打开命令提示符并键入以下命令:
pgp --create-keyrings
这将在默认密钥环位置创建pubring.pkr(公共密钥环)和secring.skr(私钥环)文件。对于Windows,这位于我的文档> PGP文件夹中。本文将使用[]来识别您需要输入的特定于您的个人密钥的信息。
之后,您需要创建密钥对。要使用PGP命令行创建密钥对,请执行以下步骤:
在命令行中输入:
pgp --gen-key [user ID] --key-type [key type] --bits [bits #] --passphrase [passphrase]
注意:任何包含空格的信息都必须包含在引号内。
示例:以下示例将向您展示如何为AC用户的员工Joe User创建一个2048位RSA密钥,密码为“my passphrase”。
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 armor(.asc)文件导出到命令行上当前活动的目录来响应。
以下示例将向您展示如何使用密钥ID和用户ID导出公钥。
pgp --export 0x12345678
pgp --export "Joe User"
您可以从ASCII Armor文件(.asc)或文本文件导入公钥,两者的过程相同。包含要导入的密钥的文件必须位于当前目录中。与导出密钥一样,这将在示例中称为(输入)。如果公钥和私钥存在于文件中,则将导入它们。如果导入的密钥已存在于本地密钥环中,则会合并密钥。从文件导入密钥:
pgp --import (input)
PGP命令行响应如下:Joe User.asc:import key {0:key import as 0x12345678 Joe User}
以下示例将向您展示如何从ASCII Armor文件(.asc)和包含PGP密钥块的文本文件中导入密钥。
pgp --import "Joe User.asc"
pgp --import "PGP Joe.txt"
答案 1 :(得分:0)
这些文件分别是公共和私有(OpenPGP术语中的秘密)密钥环。它们包含公钥和私钥的集合。您通常会生成一个密钥对(一对公钥和私钥)或几个密钥对供您自己使用,其他人也这样做。然后,他们可以为您提供 public 键,并从这些键创建公钥。然后,公共密钥环用于加密收件人的数据或验证其他人的daa签名。
私钥环由您生成的私钥组成。您使用私钥密钥对数据进行签名,并且您可以将相应的公钥提供给其他人,以便他们可以为您加密数据(然后使用您的私钥解密)。
我相信BouncyCastle具有密钥生成功能,或者您可以使用GnuPG应用程序或PGP Desktop生成密钥。
答案 2 :(得分:0)
您可以查看BouncyCastle库附带的OpenPGP密钥生成示例。
它们位于:
[bouncy castle sources] \ src \ org \ bouncycastle \ openpgp \ examples \ RSAKeyPairGenerator.java
[bouncy castle sources] \ src \ org \ bouncycastle \ openpgp \ examples \ DSAElGamalKeyRingGenerator.java
使用密钥的示例代码可在以下位置找到:
[bouncy castle sources] \ src \ org \ bouncycastle \ openpgp \ examples \ KeyBasedFileProcessor.java