Pgp
為什麼要使用 ASCII Armor 進行文件加密?
GPG和age都提供了一個
--armor
選項,但文件加密的案例是什麼?現在肯定大多數頻道都允許傳輸二進制數據嗎?這似乎沒有必要,聽起來它滿足了一個罕見的案例。我可以理解它用於共享密鑰對,也許是簽名,但不能用於文件加密。即使對於密鑰對和簽名,感覺也有更好的方法來處理短 Base64 密鑰和共享簽名文件(如Minisign)。
抱歉,如果這與密碼學相關的不夠。我在這裡問,因為這些是加密工具,並且必須有某些原因為什麼這是一個功能。
“現在肯定大多數通道都允許傳輸二進制數據嗎?” 當然,但 PGP 是古老的。包括電子郵件和 Usenet 在內的很多東西都是基於文本的。儘管 FTP 當然可以傳輸二進製文件,但您可能忘記在當時基於文本的 FTP 客戶端中打開該選項。
請注意,我們仍然有很多地方需要文本,例如 XML、JSON。HTTP 可能能夠發送二進製文件(儘管許多開發人員似乎忘記了這一點),HTTP 標頭和 URL 通常是文本。
請注意,例如
gpg
也用於 shell 腳本等。首先創建文件,然後使用 ASCII Armor 將其轉換為可列印的 ASCII 是非常低效的。擁有一件普遍接受的盔甲也很有意義。否則解密/簽名驗證可能會失敗,或者您可能必須協商使用哪種確切格式。
最後,如果您無論如何都需要簽名等,為什麼不為所有可能的輸出提供相同的選項呢?一般來說,這只是幾行程式碼。