软件包的校验方法

转载 2007年09月20日 15:46:00

 



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构造包的拷贝,它由build@mysql.com创建.当然你也可以从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) <build@mysql.com>"

"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) <build@mysql.com>"
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数字签名不匹配时,可再次下载正确的软件包,可选用别的镜像服务器.

网上下载文件完整性验证方法(以Ant为例window版)

概述: 有时候在网上下载文件是否源文件(官方发布的版本)?是否被人篡改过?我们如何验证这些完整性。这里涉及三种校验方法pgp 、MD5、SHA1。本质上,由源文件采用对应算法生成一个字符串。如果源文...
  • m0_37355951
  • m0_37355951
  • 2017年11月18日 11:26
  • 365

hadoop学习笔记之一:文件完整性验证gpg --verify

1.下载签名文件,然后用gpg –verify命令 % gpg –verify httpd-2.0.44.tar.gz.asc httpd-2.0.44.tar.gz gpg: Signature...
  • jtbrian
  • jtbrian
  • 2016年08月09日 17:21
  • 862

验证软件包的正确性

  2.1.4. 通过MD5校验和或GnuPG验证软件包的完整性 2.1.4.1. 验证MD5校验和 2.1.4.2. 通过GnuPG进行签名检查 ...
  • ruanruoshi
  • ruanruoshi
  • 2006年07月18日 15:06
  • 2112

软件包的校验方法

 1.1用MD5进行校验当你下载一个软件包后,你应该去校验它,如果你的软件包带有MD5校验码,你可用下面的方法进行校验:shell> md5sum 注:并不是所有的操作系统都支持MD5SUM 命令--...
  • fengyuruhui
  • fengyuruhui
  • 2007年09月20日 15:46
  • 3026

在Windows下使用Gpg4win对文件进行完整性校验(PGP校验)

下载GnuPG https://www.gnupg.org/download/index.en.html windows下载 Gpg4win https://www.gpg4win.org/downl...
  • gsls200808
  • gsls200808
  • 2016年05月29日 16:09
  • 3609

rpm包的校验、rpm包的文件提取

RPM包的校验用rpm -V 包名进行校验是否做了修改之类的
  • u012110719
  • u012110719
  • 2015年01月01日 11:25
  • 678

RPM 校验软件包完整性

RPM 校验软件包完整性
  • cnbird2008
  • cnbird2008
  • 2010年07月12日 17:33
  • 2290

net 服务端接口 存储,发送 app短信验证码

net 写的app 接口,短信验证码模块的时候,本来验证码是放在session里面的,但是发现第二次会话时,愣是找不到这个验证码。于是查了下资料,不能放在session,更改为放在数据库。 要求...
  • ganggelove
  • ganggelove
  • 2016年03月05日 15:06
  • 695

登录验证数据库建立及数据库学习总结

一、用户登录时的验证数据库: 1、  创建数据库 ①  打开SQL Server 点击“新建查询”进入“查询分析器”输入下列T_SQL语句创建数据库和登录信息表。 CREATE DAT...
  • meng425841867
  • meng425841867
  • 2013年01月07日 19:16
  • 2496

三种校验方法

奇偶校验根据被传输的一组二进制代码的数位中“1”的个数是奇数或偶数来进行校验。采用奇数的称为奇校验,反之,称为偶校验。采用何种校验是事先规定好的。通常专门设置一个奇偶校验位,用它使这组代码中“1”的个...
  • jxm_96
  • jxm_96
  • 2016年11月05日 19:54
  • 1482
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:软件包的校验方法
举报原因:
原因补充:

(最多只允许输入30个字)