当您生成 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 …
我使用GnuPG和C#来加密带有导入公钥的文件.但是当我尝试加密时,GnuPG用主用户的公钥加密文件.我确信我通过了正确的收件人.
我正在尝试编写一个bash脚本来检查给定的签名是否有效.我有两个可能的输出:
$ gpg --no-default-keyring --keyring /etc/pubring.gpg --verify file.tgz.sig file.tgz
Run Code Online (Sandbox Code Playgroud)
错误
gpg: Signature made Tue 05 Apr 2011 11:01:19 CEST using RSA key ID E32804F0
gpg: Can't check signature: public key not found
Run Code Online (Sandbox Code Playgroud)
对
gpg: Signature made Tue 05 Apr 2011 11:01:19 CEST using RSA key ID E32804F0
gpg: Good signature from "Test key <test@localhost>"
Run Code Online (Sandbox Code Playgroud)
如何在不必解析结果的情况下检测检查是否正确.
这个问题与使用Perl验证GPG文件签名类似,但是我想在bash中执行此操作(或者如果非常需要Python.)
什么是修订控制PGP加密文本文件的好方法?
目标是
仅在本地存储库(工作副本)和远程存储库(逻辑上为"中央"存储库)中存储PGP加密(最好使用ASCII装甲)文本文件.
通过PGP加密(例如,通过使用GnuPG)在存储修订历史的存储库中保护隐私
尽可能减少存储开销
如果只是一个版本控制PGP加密和ASCII装甲文本文件,因为它的整个内容将在每次解密进行编辑时更改,然后在存储并提交到版本控制存储库之前进行加密,差异将大致与文件成比例大小,即使解密文本的变化很小,也会快速增长.
我需要自动加密文件,例如myfile.xls到myfile.gpg.现在,当我尝试自动加密或使用GNU隐私辅助时,加密文件是myfile.xls.gpg.当我删除.xls时,它在解密后没有扩展名.谢谢.
我试图弄清楚如何基于相同的InputStream使用读取多个摘要(md5,sha1,gpg)DigestInputStream.根据我在文档中检查的内容,似乎可以通过克隆摘要来实现.有人可以说明一下吗?
我不想重新读取流来计算校验和.
关于https://gist.github.com/shadowhand/873637状态的评论
“ ECB模式加密是一种相对简单的加密方法,它提供了高级别的混淆(或低级别的加密)。这种方法不是很安全,不应该用于敏感的个人数据,但是可以很好地用于例如。在公共通道之间的私人团体之间传输源代码。为了提高安全性,您可以将模式切换为CBC,但要以每次修改完全更改每个文件为代价。与所有加密一样,始终建议使用强密钥。”
和
“这是功能正确加密的定义的一部分(ECB(单击此处以获取解释)),这是有缺陷的传统实现,恰恰是今天没有人推荐使用的,并且仅在OpenSSL中受支持,因为OpenSSL支持一些非常老旧的协议。令人毛骨悚然的旧式加密实现!仅在今天作为学习工具才有用,切勿在当前系统中使用。
OFB模式的CBC应该是默认值-请考虑更改使用CBC的要旨,并为那些希望接受安全性损失以方便git的人解释ECB的潜在好处以及缺点。默认情况下,没有什么不安全的!”
http://git.661346.n2.nabble.com/Transparently-encrypt-repository-contents-with-GPG-td2470145.html但是指出,对CBC使用定值盐是不好的加密实践。如果我们将模式切换为CBC(对于https://gist.github.com/shadowhand/873637或https://github.com/shadowhand/git-encrypt),它将使用固定值的盐,因此是不好的加密实践吗?
(我还将这个问题作为评论发布在https://gist.github.com/shadowhand/873637上)
我们正在建立我们的第一个EDI系统,该系统依赖于使用OpenPGP进行的传入和传出文件加密。使用我们的公钥加密的传入文件,我们可以使用Gpg4win的命令行选项使用私钥成功解密:
gpg --batch --passphrase "SOME_KEY" --decrypt-files "%decryptingdir%\*.pgp"
Run Code Online (Sandbox Code Playgroud)
现在,我需要做的是反向操作,并使用我们的合作伙伴公钥对传出文件进行加密。
我一直找不到使用公钥进行批处理加密的任何命令行文档。我以为是这样的:
gpg --batch --encrypt-files "%encryptingfir%\*.pgp" --key "SOME_KEY_PATH"
Run Code Online (Sandbox Code Playgroud)
谁能建议我如何通过命令行实现这种加密?
可以使用PGP对文件进行签名,通过clearsign在CMD中执行以下命令来使用选项
gpg --clearsign filename
GnuPG使用什么样的算法来清除选项,这样即使在执行签名之后,输出签名也是可读的?
我阅读了一本手册,说明了clearsign选项是如何工作的,但我无法理解它.它可以在这里找到.
根据手册,盔甲适用于签名,使签名不可读.但问题是清晰度如何使签名可读.
但是,如何控制由哈希算法和加密函数组成的签名输出作为明文?
通过使用散列和加密函数,如何将输出保证为可读的ASCII字符范围?
我正在尝试使用Blackbox加密我正在使用的存储库中的敏感文件,但我无法使GitLab CI管道加载解密文件所需的私有GPG密钥.
在,您可以看到GitLab CI运行器的输出,其中很明显:
但是,当我运行命令时gpg -v --import /tmp/server.gpg,我会继续gpg: no valid OpenPGP data found..这毫无意义.
我已经跟踪了我可以找到的所有帖子,但它们要么是关于验证文件内容而不是实际导入正确的密钥,要么密钥实际上是格式错误的,我的显然不是.
我很感激我能在这件事上得到任何帮助,因为我没有任何进展.
谢谢!
GitLab CI跑步者的输出:
Running with gitlab-ci-multi-runner 9.1.0 (0118d89) on docker-auto-scale (e11ae361)
Using Docker executor with image golang:1.8.1 ...
Using docker image sha256:3858bc6d4732445082339c9ccccfe56bf599d1fe7d9e850fb67ceec76807ed8d for predefined container...
Pulling docker image golang:1.8.1 ...
Using docker image golang:1.8.1 ID=sha256:6d0bfafa0452c6398be979f89614b5e3cb5d10e853ccd4f5791c4971a88065e0 for build container...
Running on runner-e11ae361-project-3172553-concurrent-0 via runner-e11ae361-machine-1493644095-36064084-digital-ocean-2gb...
Cloning repository...
Cloning into '/builds/project/repo'...
Checking out 7013b30a as feature/blackbox...
Skipping Git …Run Code Online (Sandbox Code Playgroud)