我是PGP的新手,想要在一个需求中实现加密/解密。我搜索了它并决定使用Boynce Castle算法。但是当我试图理解它时,我对如何获得.pkr和.skr文件感到困惑。我刚刚下载了需要的jar和程序,当试图运行它时,显示我找不到文件。我自己并不知道我创建了.pkr和.skr文件(从.txt转换而来),但我认为它应该采用某种格式,并且应该由某种机制生成。有人可以解释一下吗?我可以如何继续..?公钥和私钥文件(.pkr,.skr)
回答
这些文件都是公共和私人(在OpenPGP的术语秘密)分别钥匙扣。它们包含公钥和私钥的集合。您通常会生成一个密钥对(一对公钥和私钥)或几个密钥对供您自己使用,而其他人也这样做。然后他们可以给你他们的公开的密钥,并且你从这些密钥中创建一个公共密钥环。公用密钥环然后用于加密收件人的数据或验证其他人的daa签名。
私人钥匙圈是从你的,你生成私钥组成。您使用私钥匙来签署数据,您可以将相应的公钥提供给其他人,以便他们可以为您加密数据(然后使用私钥解密)。
我相信BouncyCastle的具有密钥生成功能,或者您也可以使用GnuPG应用程序或PGP桌面生成密钥。
您可以检查与BouncyCastle的库船OpenPGP的密钥生成的例子。
它们分别位于:
[充气城堡源] \ SRC \有机\ BouncyCastle的\ OpenPGP的\例子\ RSAKeyPairGenerator.java
[充气城堡源] \ SRC \有机\ BouncyCastle的\ OpenPGP的\实例\ DSAElGamalKeyRingGenerator.java
使用该密钥实施例的代码可以被发现在:
[充气城堡源] \ SRC \有机\ BouncyCastle的\ OpenPGP的\例子\ KeyBasedFileProcessor.java
如果你有相同的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"
- 1. 私钥/公钥
- 2. 创建公钥和私钥
- 3. Google recaptcha公钥和私钥
- 4. 公钥和私钥混淆
- 5. EC公钥/私钥的文件格式?
- 6. 与公钥/私钥
- 7. 公钥和私钥API密钥
- 8. 提取从OpenSSL的密钥文件的公钥和私钥
- 9. PyCrypto:解密只用文件中的公钥(无私钥+公钥)
- 10. 私钥长度>公钥?
- 11. OpenSSL AES_cfb128_encrypt公钥/私钥C++
- 12. Javascript ECDSA获取私钥和公钥?
- 13. JWT公钥和私钥无效
- 14. 公钥和私钥的关系
- 15. 生成OpenSSL私钥和公钥
- 16. 扩展的私钥和公钥
- 17. 如何查找.ssh私钥和公钥
- 18. openssl?加入公钥和私钥
- 19. 创建公钥和私钥的Gem?
- 20. TeamCity支持Git和MSysGit公钥/私钥
- 21. IOS Touch ID公钥和私钥
- 22. 用Bouncy Castle重建私钥和公钥?
- 23. Android指纹API和私钥/公钥
- 24. ECC公钥和私钥设置器
- 25. 需要私钥和公钥的数量?
- 26. OpenSSL的RSA私钥和公钥
- 27. Azure ARM模板 - ssh公钥和私钥
- 28. RSA公钥和私钥的备份
- 29. keytool - 查看公钥和私钥
- 30. 是.snk包含私钥和公钥吗?
这些命令不再工作了:I – dipl0 2017-10-03 19:50:56