首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >公钥和私钥文件(.pkr、.skr)

公钥和私钥文件(.pkr、.skr)
EN

Stack Overflow用户
提问于 2012-02-29 16:20:39
回答 3查看 31.4K关注 0票数 2

我是PGP的新手,我想在一个需求中实现加密/解密。我谷歌了一下,决定用Boynce Castle algo。但当我试图理解它时,我对如何获得.pkr和.skr文件感到困惑。我刚刚下载了所需的jars和程序,当尝试运行它时,它显示找不到文件。我没有意识到,所以我自己创建了.pkr和.skr文件(从.txt转换),但我认为它应该是某种格式,并且应该由某种机制生成。有人能给我解释一下吗?我该如何继续..?

EN

回答 3

Stack Overflow用户

发布于 2013-12-04 08:42:08

如果您将PGP Desktop安装在与PGP命令行相同的Windows计算机上,并且已将PGP Desktop安装到默认目录,则PGP命令行将自动查找并使用现有密钥环。如果您使用的不是PGP Desktop产品中的PGP keyring,则需要创建空白keyring文件。为此,请打开命令提示符,然后键入以下命令:

代码语言:javascript
运行
复制
pgp --create-keyrings

这将在默认的密钥环位置创建一个pubring.pkr (公共密钥环)和secring.skr (私有密钥环)文件。对于Windows,它位于My Documents>PGP文件夹中。本文将用来标识您需要输入的特定于您的单个密钥的信息。

在此之后,您将需要创建密钥对。要使用PGP命令行创建密钥对,请执行以下步骤:

在命令行上,输入:

代码语言:javascript
运行
复制
pgp --gen-key [user ID] --key-type [key type] --bits [bits #] --passphrase [passphrase]

注意:任何包含空格的信息都必须包含在引号中。

示例:下面的示例将向您展示如何使用口令"my passphrase“为ACME公司的员工Joe User创建2048位RSA密钥。

代码语言:javascript
运行
复制
pgp --gen-key "Joe User" --key-type RSA --bits 2048 --passphrase "my passphrase"

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

注意:要显示新的密钥对,请输入以下命令:

代码语言:javascript
运行
复制
pgp --list-keys

这将显示在您的钥匙圈上找到的所有密钥。

生成并标识密钥对后,一定要导出密钥对的公钥部分(公钥),以便其他人可以导入您的公钥并加密给您。注意:一旦你将你的公钥导出到一个文件中,它就很容易分发了。例如,您可以将其附加到电子邮件、将公钥块文本粘贴到电子邮件正文(使用记事本打开)或复制到CD。要导出您的公钥,您需要具有有关密钥的信息,以便识别它,在本文中将其称为(输入)。您可以使用密钥ID (即0x12345678)、用户ID (即"Joe User")或用户ID的一部分(即Joe)。要导出密钥,请执行以下操作:

代码语言:javascript
运行
复制
pgp --export (input)

PGP命令行导出密钥作为ASCII armor (.asc)文件到当前在命令行上激活的目录。

下面的示例将向您展示如何使用密钥ID和用户ID导出公钥。

代码语言:javascript
运行
复制
pgp --export 0x12345678
pgp --export "Joe User"

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

代码语言:javascript
运行
复制
pgp --import (input)

PGP命令行响应如下: Joe User.asc:import key {0:key导入为0x12345678 Joe User}

以下示例将向您展示如何从ASCII Armor文件(.asc)和包含PGP密钥块的文本文件导入密钥。

代码语言:javascript
运行
复制
pgp --import "Joe User.asc"
pgp --import "PGP Joe.txt"
票数 4
EN

Stack Overflow用户

发布于 2012-02-29 16:48:39

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

私有密钥环由您生成的私钥组成。您使用私有密钥环对您的数据进行签名,并且您可以将相应的公钥提供给其他人,以便他们可以为您加密数据(然后使用您的私钥解密数据)。

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

票数 0
EN

Stack Overflow用户

发布于 2013-01-10 20:25:50

您可以查看BouncyCastle库附带的OpenPGP密钥生成示例。

它们位于:

弹力城堡sources\src\org\bouncycastle\openpgp\examples\RSAKeyPairGenerator.java

弹力城堡sources\src\org\bouncycastle\openpgp\examples\DSAElGamalKeyRingGenerator.java

可以在以下位置找到使用密钥的示例代码:

弹力城堡sources\src\org\bouncycastle\openpgp\examples\KeyBasedFileProcessor.java

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9495681

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档