我想看看是否可以让 python-gnupg 模块使用 python 脚本来签名和验证文件。我有以下代码,调用时不会解释任何错误。
然而,当我认为我已经签署了文件()时,代码最后打印出“未验证” example.txt。
我一定在文档中遗漏了一些东西,但是在我阅读之后,这就是我想出的用于签名和验证的内容。有什么帮助吗?
import gnupg
gpg = gnupg.GPG(gnupghome="/home/myname")
stream = open("example.txt", "rb")
signed_data = gpg.sign_file(stream)
verified = gpg.verify_file(stream)
print "Verified" if verified else "Unverified"
Run Code Online (Sandbox Code Playgroud) 我正在尝试将我的库部署到-jdbc-url,但签名失败:
\n\n$ lein release\nOn branch master\nYour branch is ahead of \'origin/master\' by 2 commits.\n (use "git push" to publish your local commits)\nnothing to commit, working directory clean\n[master 23b2409] Version 0.3.0\n 1 file changed, 1 insertion(+), 1 deletion(-)\ngpg: skipped "J. Pablo Fern\xc3\xa1ndez <pupeno@carouselapps.com>": secret key not available\ngpg: signing failed: secret key not available\nerror: gpg failed to sign the data\nerror: unable to sign the tag\nNo credentials found for releases (did you mean `lein deploy clojars`?)\nPassword prompts are not supported when ran …Run Code Online (Sandbox Code Playgroud) 我创建了一个密钥,并创建了一个子密钥。使用子密钥,我签署了一个文件。验证工作。撤销密钥,验证不成立。这是预期的行为。
但是,如果我尝试使用相同的子密钥签名并验证它仍然有效。我究竟做错了什么?这是我正在做的全部事情:
$ gpg --gen-key
$ gpg -k
/Users/mustafa/.gnupg/pubring.kbx
---------------------------------
pub rsa2048 2019-02-03 [SC] [expires: 2021-02-02]
5DD923FBCF6392A5CB366167D4C0627A07510C6C
uid [ultimate] Mustafa <mustafa91@gmail.com>
sub rsa2048 2019-02-03 [E] [expires: 2021-02-02]
Run Code Online (Sandbox Code Playgroud)
使用编辑键,添加一个子键。
$ gpg --edit-key 5DD923FBCF6392A5CB366167D4C0627A07510C6C
sec rsa2048/D4C0627A07510C6C
created: 2019-02-03 expires: 2021-02-02 usage: SC
trust: ultimate validity: ultimate
ssb rsa2048/E058B91696C43666
created: 2019-02-03 expires: 2021-02-02 usage: E
gpg> addkey
sec rsa2048/D4C0627A07510C6C
created: 2019-02-03 expires: 2021-02-02 usage: SC
trust: ultimate validity: ultimate
ssb rsa2048/E058B91696C43666
created: 2019-02-03 expires: 2021-02-02 usage: E
ssb rsa2048/38616BDAE66E418C
created: 2019-02-03 expires: 2019-02-13 …Run Code Online (Sandbox Code Playgroud) pip install GnuPG说要求已经满足,但是当我使用 GnuPG 运行 python 脚本时,它说GnuPG is not installed.
环境:我有一个 Laravel 6.x 应用程序在 Amazon EC2 上运行,使用 Ubuntu 18.4 Bionic 和 Apache 服务器。我有多个预定的工匠命令。他们要么生成文件并将其通过 FTP 传输到不同的服务器,要么从不同的服务器导入文件。这些文件在导出到客户端服务器之前必须使用 PHP GNUPG 进行加密,并且在从客户端服务器下载它们以供进一步处理后需要解密,因此,必须将公钥和私钥存储在服务器上,并以以下方式存储:作为“Ubuntu用户”运行的预定进程可以访问和使用它们(我假设“Ubuntu用户”只需要对关键文件具有读取权限,并且不需要向其他用户授予任何权限,因为他们不这样做也不应该'无法访问这些文件,如果我错了,请纠正我)。我的问题:我想知道最佳实践,在我的服务器内的哪个文件夹中,以及如何(具有什么权限)存储这些密钥文件,以便我可以确保它们是安全的,并确保所有自动化进程将能够根据需要访问和使用它们。
每当我尝试通过命令行提交更改时,我都会收到此错误消息:
error: cannot spawn gpg2: No such file or directory
Run Code Online (Sandbox Code Playgroud)
更新:我正在运行 Windows 10
我想在 android 中使用 BouncyCastle 进行 GnuPG 加密(想要获取 .gpg 文件)。但我收到此错误。(不支持的类文件主要版本 59。
无法转换 bcprov-jdk15on-1.67.jar (org.bouncycastle:bcprov-jdk15on:1.67))
我的gradle版本是:gradle-6.7.1-bin.zip
JAVA_VERSION="1.8.0_242"
请帮忙。
或者,如果有人可以建议我使用其他方式在 android 中进行 GnuPG 加密,那也将非常有帮助。
我正在尝试用 python 创建一个 AWS Lambda:
python-gnupgpython-gnupg这是在 Lambda 层中使用 python 3.8 和包。
我已验证 PGP 密钥是否正确,它是否已正确加载到密钥环中,并且加密文件是否已正确下载。但是,当我尝试运行时,gnupg.decrypt_file我得到的输出看起来好像已经成功,但解密状态显示not ok并且解密的文件不存在。
如何在 Lambda 中进行 PGP 解密?
以下是从 lambda 函数中提取的相关代码:
import gnupg
from pathlib import Path
# ...
gpg = gnupg.GPG(gnupghome='/tmp')
# ...
encrypted_path = '/tmp/encrypted.zip'
decrypted_path = '/tmp/decrypted.zip'
# ...
# this works as expected
status = gpg.import_keys(MY_KEY_DATA)
# ...
print('Performing Decryption of', encrypted_path)
print(encrypted_path, "exists :", Path(encrypted_path).exists())
with open(encrypted_path, 'rb') as f:
status = …Run Code Online (Sandbox Code Playgroud) 我尝试设置一个 docker 映像来压缩和加密文件。
我的问题是,当我尝试使用 Dockerfile 执行此操作时,gpg --list-keysshell 挂起并且没有任何反应。
没有错误消息。我在日志中看不到任何内容。
我的 Dockerfile :
FROM alpine:3
COPY public.asc /
RUN apk add --no-cache gnupg openssh && ssh-keygen -A && mkdir /root/.ssh
ENTRYPOINT ["/entrypoint.sh"]
EXPOSE 22/tcp
COPY entrypoint.sh /
RUN gpg --import /public.asc
Run Code Online (Sandbox Code Playgroud)
如果我删除RUN gpg --import /public.asc并将其直接运行到附加到容器的 shell 中,然后运行gpg --list-keys,它工作正常并返回密钥。
也许我遗漏了 Docker 如何构建镜像的一些内容?
gnupg ×10
encryption ×2
git ×2
pgp ×2
python-3.x ×2
alpine-linux ×1
android ×1
aws-lambda ×1
bouncycastle ×1
clojars ×1
clojure ×1
dockerfile ×1
git-commit ×1
github ×1
kotlin ×1
laravel ×1
leiningen ×1
php ×1
python ×1
server ×1
sign ×1
verification ×1