PGP(英語:Pretty Good Privacy,中文含義「良好隱私密碼法」)是一套用於消息加密、驗證的應用程序,採用IDEA的散列算法做爲加密與驗證之用。
PGP的主要開發者是菲爾·齊默爾曼(Phil Zimmermann)。齊默曼於1991年將PGP在互聯網上免費發佈。PGP自己是商業應用程序;開源並具備同類功能的工具名爲GPG(GnuPG)。PGP及其同類產品均遵照OpenPGP數據加解密標準.
PGP加密由一系列散列、數據壓縮、對稱密鑰加密,以及公鑰加密的算法組合而成。每一個步驟支持幾種算法,能夠選擇一個使用。每一個公鑰均綁定惟一的用戶名和/或者E-mail地址。這個系統的第一個版本一般稱爲可信Web或X.509系統;X.509系統使用的是基於數字證書認證機構的分層方案,該方案後來被加入到PGP的實現中。當前的PGP加密版本經過一個自動密鑰管理服務器來進行密鑰的可靠存放。源於維基php
GPG的做用是驗證文件是否被篡改.算法
若是攻擊者劫持了你從 php.net 的下載 tar.xz 和 tar.xz.asc 的請求,他想經過篡改你下載到的 php 壓縮包來給你種上後門,他也並不能產生一個被你
gpg --verfiy
信任的文件和簽名,也就不能經過驗證 出錯退出 by:v2ex-cy97cool服務器
ENV GPG_KEYS 1729F83938DA44E27BA0F4D3DBDB397470D12172 B1B44D8F021E4E2D6021E995DC9FF8D3EE5AF27F for key in $GPG_KEYS; do \ gpg --keyserver ha.pool.sks-keyservers.net --recv-keys "$key"; \ # 查詢公鑰 done; \ gpg --batch --verify php.tar.xz.asc php.tar.xz;
#驗證文件是否完整 ENV PHP_SHA256="92a745048912beb3f6c2a3c188ce695a51852c67201fdf9a21dafe59f51aecc1" PHP_MD5="" \ echo "$PHP_SHA256 *php.tar.xz" | sha256sum -c -;
php中GnuPG版本php7
GnuPG v1 php7
GnuPG v2.0.22 (SunOS) php-5.3.29
GnuPG v1.4.10 (Darwin) php-5.3.28如下工具
Q: GPG_KEYS 從哪裏來的?
A: PHP官方完整KEYS列表 每一個 Key fingerprint 如:PHP 5.5 都適用於 5.5.x的全部文件. 網站
Q: 如何在網站上查詢密鑰?
A: 用keys前面要加0x 查詢示例 http://ha.pool.sks-keyservers... this
Q: ASC文件在哪下載?
A: 通常是在下載文件的地址中的文件名加上.asc 如:http://am1.php.net/get/php-7.... -> http://am1.php.net/get/php-7....加密