如何修复“警告:不是分离的签名”?

sun*_*sen 4 gnupg

我正在尝试使用以下内容对 Python 文件进行签名:

gpg --sign --output ./ulagen.py.sig ./ulagen.py
Run Code Online (Sandbox Code Playgroud)

当我使用 验证签名时gpg --verify ./ulagen.py.sig,出现以下错误:

gpg: WARNING: not a detached signature; file 'ulagen.py' was NOT verified!
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

Jos*_*ica 6

如果你想要一个分离的签名,你需要使用:

gpg --detach-sig --sign --output ./ulagen.py.sig ./ulagen.py
Run Code Online (Sandbox Code Playgroud)

但什么是分离签名?默认情况下,GPG 创建文件的签名副本。所以如果你使用

gpg --sign --output ./ulagen.py.sig ./ulagen.py
Run Code Online (Sandbox Code Playgroud)

该文件ulagen.py.sig将包含一个压缩副本ulagen.py和它的签名

你可以使用命令

gpg --output ./ulagen-restored.py --decrypt ./ulagen.py.sig
Run Code Online (Sandbox Code Playgroud)

这将提取其中包含的文件ulagen.py.sig并将其另存为ulagen-restored.py

只需使用验证文件

gpg --verify ./ulagen.py.sig
Run Code Online (Sandbox Code Playgroud)

将验证签名是否与包含在 ulagen.py.sig. 它与文件没有任何关系ulagen.py,这就是 GPG 告诉您的。

分离签名只是没有文件副本的签名。要验证它,您需要单独使用该文件。