我正在尝试使用 BouncyCastle 来调试和扩展现有的一段 Java 代码来解密和验证安全附件。
我已经浏览了 BouncyCastle 示例,但从那里更难提取的是 PGP 安全附件的模型。从代码和各种错误我可以推断出有一些东西由 PGPMarker 表示,然后你可以找到一个 PGPCompressedData,它里面有一个 PGPOnePassSignatureList 等等。这并没有澄清诸如何时期望一个与另一个以及在单独执行签名和加密时是否存在一次性签名等问题(这些是我遇到的示例,但不是问题的主题)。BC 的 javadoc 没有解释太多(例如,PGPOnePassSignature是“一次性签名对象”)。
通过反复试验对模型进行逆向工程是很耗时的,而且由于我还没有成功地在谷歌上搜索到一个很好的资源,我希望也许其他人知道。
提前致谢。
我的PGP密钥始终受密码保护,这意味着您需要使用对称密钥对其进行解密才能访问我的私钥.
我有兴趣公开我的密码保护PGP密钥,但我不完全确定我是否遗漏了一些东西.将我的密钥存储在我的计算机上似乎只会使事情变得更难(通过混淆来保证安全),但实际上并没有做任何好事.
考虑到我可以使用256位AES密码保护我的私钥 http://en.wikipedia.org/wiki/Key_size#Symmetric_algorithm_key_lengths
并且使用蛮力破解2 ^ n密码所需的能量存在理论上的限制 http://en.wikipedia.org/wiki/Brute_force_attack#Theoretical_limits
我错过了什么?
Subj:如何在不使用本地存储的情况下(在〜/ .gpg下)从gpg获取私钥?
该解决方案不满足要求:
$ gpg --import priv.key $ gpg --export $KEYID >pub.key $ gpg --delete-secret-and-public-key $KEYID
我想在脚本中将PGP公钥导入我的钥匙串,但我不希望它将内容写入文件.现在我的脚本执行此操作:
curl http://example.com/pgp-public-key -o /tmp/pgp && gpg --import /tmp/gpg
Run Code Online (Sandbox Code Playgroud)
我怎么能写这个脚本所以我可以调用gpg --import
并导入公钥作为字符串?谢谢您的帮助.
我正在尝试从ActiveMQ的公开OpenPGP密钥获取指纹。它们发布在http://www.apache.org/dist/activemq/KEYS上。
不幸的是,并非所有键旁边都列出了指纹。您知道如何进行吗?
我只需要信任一堆公钥就可以通过 pass 来使用它。不幸的是,我没有找到一种简单的方法来信任我本地存储的所有公钥。我发现它的收益按时间顺序相当昂贵:
> gpg --edit-key XXXXXXXXXXXXXXXX
gpg (GnuPG) 2.2.10; Copyright (C) 2018 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
pub rsa4096/XXXXXXXXXXXXXXXX
created: 2018-11-16 expires: never usage: SC
trust: unknown validity: unknown
sub rsa4096/XXXXXXXXXXXXXXXX
created: 2018-11-16 expires: never usage: E
[ unknown] (1). email@example.com
gpg> trust
pub rsa4096/XXXXXXXXXXXXXXXX
created: 2018-11-16 expires: never usage: SC
trust: unknown validity: unknown
sub rsa4096/XXXXXXXXXXXXXXXX
created: …
Run Code Online (Sandbox Code Playgroud) 我创建了一个私有 PGP 密钥,然后在我的 Ubuntu 的密码和密钥管理器中添加了一张照片。我可以在那里看到照片,但是有什么方法可以从 shell 查看它并将其导出为图像文件?
我正在尝试使用 Node.js 包openPGP解密使用 GnuPG 2.2.28 加密的文件,但我什至无法加载私钥来启动,并且出现以下错误:
{
"errorType": "Runtime.UnhandledPromiseRejection",
"errorMessage": "Error: Misformed armored text",
"trace": [
"Runtime.UnhandledPromiseRejection: Error: Misformed armored text",
" at process.<anonymous> (/var/runtime/index.js:35:15)",
" at process.emit (events.js:314:20)",
" at process.EventEmitter.emit (domain.js:483:12)",
" at processPromiseRejections (internal/process/promises.js:209:33)",
" at processTicksAndRejections (internal/process/task_queues.js:98:32)"
]
}
Run Code Online (Sandbox Code Playgroud)
在我的代码中,看起来我已经正确提供了装甲密钥,并使用反引号将密钥括起来:
{
"errorType": "Runtime.UnhandledPromiseRejection",
"errorMessage": "Error: Misformed armored text",
"trace": [
"Runtime.UnhandledPromiseRejection: Error: Misformed armored text",
" at process.<anonymous> (/var/runtime/index.js:35:15)",
" at process.emit (events.js:314:20)",
" at process.EventEmitter.emit (domain.js:483:12)",
" at processPromiseRejections (internal/process/promises.js:209:33)",
" at processTicksAndRejections (internal/process/task_queues.js:98:32)" …
Run Code Online (Sandbox Code Playgroud) 当您生成 PGP 密钥对时,您可以选择公钥算法:
$ gpg --expert --full-gen-key
gpg (GnuPG) 2.2.19; Copyright (C) 2019 Free Software Foundation, Inc.
Please select what kind of key you want:
(1) RSA and RSA (default)
(2) DSA and Elgamal
(3) DSA (sign only)
(4) RSA (sign only)
(7) DSA (set your own capabilities)
(8) RSA (set your own capabilities)
(9) ECC and ECC
(10) ECC (sign only)
(11) ECC (set your own capabilities)
(13) Existing key
(14) Existing key from card
Your selection?
Run Code Online (Sandbox Code Playgroud)
当您列出/浏览 PGP …
可以使用PGP对文件进行签名,通过clearsign
在CMD中执行以下命令来使用选项
gpg --clearsign filename
GnuPG使用什么样的算法来清除选项,这样即使在执行签名之后,输出签名也是可读的?
我阅读了一本手册,说明了clearsign选项是如何工作的,但我无法理解它.它可以在这里找到.
根据手册,盔甲适用于签名,使签名不可读.但问题是清晰度如何使签名可读.
但是,如何控制由哈希算法和加密函数组成的签名输出作为明文?
通过使用散列和加密函数,如何将输出保证为可读的ASCII字符范围?
pgp ×10
gnupg ×6
openpgp ×3
cryptography ×2
automation ×1
bouncycastle ×1
encryption ×1
gpgpu ×1
key ×1
node.js ×1
pki ×1
security ×1
sh ×1
shell ×1
trust ×1