我知道 .asc签名作为文本文件输出,而 .sig & .gpg是二进制的。

    一边说:

    • .sig.gpg同一个文件有不同的扩展名?如果没有,为什么要使用一个?
    • 文本文件和二进制文件,有什么相对优势?安全、效率、兼容性等

    最佳答案

    Are .sig and .gpg the same file with different extensions?

    不,它们在 GnuPG 的上下文中是不同的文件。

    • .gpg - GNU Privacy Guard 公钥文件,二进制格式。查看来自 4.2 Configuration files 的示例
    • .sig - GPG 签名文档文件,二进制格式。
    • .asc - 带有或不带有包装文档的纯文本格式的 ASCII 装甲签名。通常用于clearsigned documents .通常它附有未经修改的原始文档及其签名。在使用分离签名时,您可以通过 --detach-sig 无需原始文档即可生成签名。 .

    If not, why use one over the other?

    好问题!由于 OpenPGP 是一个开放标准 (RFC 4880),它的 section 6提供了详细的解释,我只引用关键部分:

    In principle, any printable encoding scheme that met the requirements of the unsafe channel would suffice, since it would not change the underlying binary bit streams of the native OpenPGP data structures. The OpenPGP standard specifies one such printable encoding scheme to ensure interoperability.

    我会用这个 answer作为二进制与 ASCII 格式的优缺点的回复。