1. 程式人生 > >軟體包的校驗方法

軟體包的校驗方法

浪費了“黃金五年”的Java程式設計師,還有救嗎? >>>   



1.1用MD5進行校驗
當你下載一個軟體包後,你應該去校驗它,如果你的軟體包帶有MD5校驗碼,你可用下面的方法進行校驗:
shell> md5sum <package>

注:並不是所有的作業系統都支援MD5SUM 命令----有的系統裡它叫"MD5",你的LINUX也可能不支援.在LINUX,裡,這個工具是一個GNU

文字工具,你可下載原始碼在這裡:http://www.gnu.org/software/textutils/或更多.
如果你曾安裝過OpenSSL,你也可以用命令openssl md5 <package>來代替.
DOS/WINDOWS環境下的md5命令可從這裡找到:http://www.fourmilab.ch/md5/.

舉個例子:
shell> md5sum mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz
155836a7ed8c93aee6728a827a6aa153
mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz

這個結果可用來與下載頁中提供的MD5校驗碼進行比較來確定包的完整性.

1.2用GnuPG進行簽名校驗
一個更加廣泛使用的軟體包校驗工具,它採用加密的簽名來進行校驗.Mysql使用GnuPG,這是一個著名的開放原始碼專案Pretty Good Privacy (PGP),由Phil Zimmermann創作,可訪問http://www.gnupg.org/ 和 http://www.openpgp.org/網站得到更多的有關 OpenPGP/GnuPG的資料,包括如何配置安裝它們在你的系統裡.大多數LINUX發行版本已預設安裝了GnuPG.

MYSQL從4.0.10開始對它們的軟體包採用GnuPG進行標記,

校驗一個軟體包,你首先需要去找到一個MYSQL的GPG構造包的拷貝,它由[email protected]建立.當然你也可以從http://www.keyserver.net/尋找名��...�複製貼上.
它的內容如下:
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.0.6 (GNU/Linux)
Comment: For info see http://www.gnupg.org

mQGiBD4+owwRBAC14GIfUfCyEDSIePvEW3SAFUdJBtoQHH/nJKZyQT7h9bPlUWC3
RODjQReyCITRrdwyrKUGku2FmeVGwn2u2WmDMNABLnpprWPkBdCk96+OmSLN9brZ
fw2vOUgCmYv2hW0hyDHuvYlQA/BThQoADgj8AW6/0Lo7V1W9/8VuHP0gQwCgvzV3
BqOxRznNCRCRxAuAuVztHRcEAJooQK1+iSiunZMYD1WufeXfshc57S/+yeJkegNW
hxwR9pRWVArNYJdDRT+rf2RUe3vpquKNQU/hnEIUHJRQqYHo8gTxvxXNQc7fJYLV
K2HtkrPbP72vwsEKMYhhr0eKCbtLGfls9krjJ6sBgACyP/Vb7hiPwxh6rDZ7ITnE
kYpXBACmWpP8NJTkamEnPCia2ZoOHODANwpUkP43I7jsDmgtobZX9qnrAXw+uNDI
QJEXM6FSbi0LLtZciNlYsafwAPEOMDKpMqAK6IyisNtPvaLd8lH0bPAnWqcyefep
rv0sxxqUEMcM3o7wwgfN83POkDasDbs3pjwPhxvhz6//62zQJ7Q7TXlTUUwgUGFj
a2FnZSBzaWduaW5nIGtleSAod3d3Lm15c3FsLmNvbSkgPGJ1aWxkQG15c3FsLmNv
bT6IXQQTEQIAHQUCPj6jDAUJCWYBgAULBwoDBAMVAwIDFgIBAheAAAoJEIxxjTtQ
cuH1cY4AnilUwTXn8MatQOiG0a/bPxrvK/gCAJ4oinSNZRYTnblChwFaazt7PF3q
zIhMBBMRAgAMBQI+PqPRBYMJZgC7AAoJEElQ4SqycpHyJOEAn1mxHijft00bKXvu
cSo/pECUmppiAJ41M9MRVj5VcdH/KN/KjRtW6tHFPYhMBBMRAgAMBQI+QoIDBYMJ
YiKJAAoJELb1zU3GuiQ/lpEAoIhpp6BozKI8p6eaabzF5MlJH58pAKCu/ROofK8J
Eg2aLos+5zEYrB/LsrkCDQQ+PqMdEAgA7+GJfxbMdY4wslPnjH9rF4N2qfWsEN/l
xaZoJYc3a6M02WCnHl6ahT2/tBK2w1QI4YFteR47gCvtgb6O1JHffOo2HfLmRDRi
Rjd1DTCHqeyX7CHhcghj/dNRlW2Z0l5QFEcmV9U0Vhp3aFfWC4Ujfs3LU+hkAWzE
7zaD5cH9J7yv/6xuZVw411x0h4UqsTcWMu0iM1BzELqX1DY7LwoPEb/O9Rkbf4fm
Le11EzIaCa4PqARXQZc4dhSinMt6K3X4BrRsKTfozBu74F47D8Ilbf5vSYHbuE5p
/1oIDznkg/p8kW+3FxuWrycciqFTcNz215yyX39LXFnlLzKUb/F5GwADBQf+Lwqq
a8CGrRfsOAJxim63CHfty5mUc5rUSnTslGYEIOCR1BeQauyPZbPDsDD9MZ1ZaSaf
anFvwFG6Llx9xkU7tzq+vKLoWkm4u5xf3vn55VjnSd1aQ9eQnUcXiL4cnBGoTbOW
I39EcyzgslzBdC++MPjcQTcA7p6JUVsP6oAB3FQWg54tuUo0Ec8bsM8b3Ev42Lmu
QT5NdKHGwHsXTPtl0klk4bQk4OajHsiy1BMahpT27jWjJlMiJc+IWJ0mghkKHt92
6s/ymfdf5HkdQ1cyvsz5tryVI3Fx78XeSYfQvuuwqp2H139pXGEkg0n6KdUOetdZ
Whe70YGNPw1yjWJT1IhMBBgRAgAMBQI+PqMdBQkJZgGAAAoJEIxxjTtQcuH17p4A
n3r1QpVC9yhnW2cSAjq+kr72GX0eAJ4295kl6NxYEuFApmr1+0uUq/SlsQ==
=YJkx
-----END PGP PUBLIC KEY BLOCK-----
將上面的內容儲存成檔案,如:mysql.
接下來,你可用gpg --import mysql ,倒入這個構造金鑰到公開GPG keyring中.可檢視關於公開金鑰如何工作的GPG文件來得到更多資訊.
在你儲存並倒入構造金鑰後,現在你需要下載你需要的MYSQL軟體包和對應的簽名檔案.這個簽名檔案是一個以".asc"為字尾的檔案.例如,`mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz'的簽名檔案是`mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz.asc'.
保證這兩個檔案位於同一目錄下,再執行下面的命令去校驗它.
shell> gpg --verify <package>.asc

舉個例子:
shell> gpg --verify mysql-standard-4.0.10-gamma-pc-linux-i686.tar.gz.asc
執行結果:
gpg: Warning: using insecure memory!
gpg: Signature made Mon 03 Feb 2003 08:50:39 PM MET using DSA key ID 5072E1F5
gpg: Good signature from
"MySQL Package signing key (www.mysql.com) <[email protected]>"

"Good signature" 資訊說明你的安裝包完好.

我下載的最新的mysql-standard-5.0.0-alpha-pc-linux-i686.tar.gz的校驗結果.
[root@redsea program]# gpg --verify mysql-standard-5.0.0-alpha-pc-linux-i686.tar.gz.asc
gpg: Signature made 2003年12月24日 星期三 00時13分07秒 CST using DSA key ID 5072E1F5
gpg: Good signature from "MySQL Package signing key (www.mysql.com) <[email protected]>"
gpg: checking the trustdb
gpg: no ultimately trusted keys found
gpg: WARNING: This key is not certified with a trusted signature!
gpg: There is no indication that the signature belongs to the owner.
Primary key fingerprint: A4A9 4068 76FC BD3C 4567 70C8 8C71 8D3B 5072 E1F5

1.3 用RPM進行簽名校驗.
針對RPM包的校驗.
對於RPM包來說,它沒有分離的簽名--RPM包實際有一個內建的GPG簽名和MD5校驗碼.你可以校驗它用下面的命令:
shell> rpm --checksig <package>.rpm

舉個例子:
shell> rpm --checksig MySQL-server-4.0.10-0.i386.rpm
MySQL-server-4.0.10-0.i386.rpm: md5 gpg OK

注意:如果你使用RPM4.1,上面的命令會出現(GPG) NOT OK (MISSING KEYS: GPG#5072e1f5)(即使你曾經倒入過你的GPG金鑰).這時你需要首先倒入RPM keyring金鑰.RPM 4.1不再使用GPG keyring(和GPG本身),它使用自己的keyring(因為它是系統生成的,而GPG公開金鑰是一個使用者自定義檔案.).
用下面的命令倒入MYSQL公開金鑰到RPM keyring中.

shell> rpm --import <pubkey>

舉個例子:

shell> rpm --import mysql_pubkey.asc
隨後再用--checksig引數進行校驗
假如你注意到MD5校驗碼和GPG數字簽名不匹配時,可再次下載正確的軟體包,可選用別的映象伺服器.

 

https://blog.csdn.net/fengyuruhui/article/details/