我创建了一个名为1.txt的文件。它有三行文本。
我运行了“gpg --clear-sign 1.txt”。这创建了一个名为 1.txt.asc 的文件。当我在记事本中打开该文件时,它是可读的。它有三行文本,后面是数字签名。
我运行了“gpg --sign 1.txt”。这创建了一个文件 1.txt.gpg。当我在记事本中打开该文件时,它无法辨认。没有一组看起来像签名的随机字符;它看起来像记事本无法解析为文本的二进制文件。
我对“数字签名”的理解与第一个例子一致。原始文件未经修改。添加了加密哈希。这可以在不加密数据的情况下验证签名者的身份。
第二种选择看起来更像是加密。如果无法访问用户的密钥对,我根本无法查看文件。
我错了吗?使用“gpg --sign”,有没有办法在不访问签名者公钥的情况下查看文件?
答案1
它只是被压缩了。这与数字签名无关——它是 OpenPGP 文件格式的属性。
大多数 PGP 工具默认使用 DEFLATE(与 Zip 使用的算法相同)压缩“数据包”——可能是为了补偿 --armor 模式引入的 34% 开销。(最初 PGP 是为电子邮件构建的,当时每千字节都很重要。)
gpg -d
即使无法验证消息,也应该转储内容。使用pgpdump
或gpg --list-packets
详细检查 OpenPGP 消息的结构,包括压缩和其他此类参数。