适用于:
Oracle Database - Standard Edition - 版本 8.1.7.4 和更高版本Oracle Database - Enterprise Edition - 版本 8.1.7.4 和更高版本
本文档所含信息适用于所有平台
目标
什么是 MD5 校验码?
什么是 SHA-1 校验码?
如何检查下载的补丁/软件的 MD5 和 SHA-1 校验码?
解决方案
MD5 代表消息摘要算法5。MD5 算法可对任意长度的消息(输入)生成一个 128-bit 的"指纹"或者"消息摘要"(输出)。 通过比较文件下载源的 MD5sum 和下载后的 MD5sum,下载的完整性得以检验。
SHA 代表安全散列算法。总共有5种 SHA 算法,分别表示为 SHA-1,SHA-224,SHA-256,SHA-384 和 SHA-512。SHA-1 与 MD5 一样,是另外一种用来校验数据完整性的算法。这两种算法的主要区别为 MD5 采用 128bit 来生成消息摘要而 SHA-1 采用 160bit。
当从 OTN 下载 Oracle 软件或者从 Metalink 下载补丁时,确保文件在下载的过程中没有损坏是非常重要的,这可以通过比较 MD5 并且/或者 SHA-1 校验码的方式来达到目的,参见如下视频:
Video - Verifying a good download from MOS (02:14)
---------------------------------------------------------------------------------------------------
下载后的文件应当与下载源的 SHA-1 和 MD5 校验码匹配,就像上面的视频一样。如果它们不匹配,那么需要重新下载文件。
也可以通过 OTN 上提供的'cksum'命令来计算文件的校验码。
例如在 Linux 上可以用如下命令:
注意:
Solaris 不附带安装 md5sum。
对于 Solaris 8 和 9:
md5sum,sha1sum 工具被包含在 GUN 包'coreutils'中,可在 www.sunfreeware.com 下载。
对于 Solaris 10:
必须安装'digest'包。
在 Solaris 10 上计算 MD5 和 SHA-1 的校验码:
digest 工具可用来通过指定的算法来计算文件或者 stdin 的消息摘要。
MD5:
$ digest -v -a md5 <complete_path_of_file_name>
SHA-1:
$/usr/bin/digest -v -a sha1<complete_path_of_file_name>
在这里 file_name 指的是下载后的文件的完整路径。
在 Solaris 10 上计算 MD5 和 SHA-1 校验码的例子:
$ digest -v -a md5 /home/myuser/test_file1
md5 /home/myuser/test_file = d41d8cd98f00b204e9800998ecf8427e
SHA-1:
$/usr/bin/digest -v -a sha1 /home/myuser/test_file3
sha1 (/home/myuser/test_file3) = da39a3ee5e6b4b0d3255bfef95601890afd80709
在 Linux 上计算 MD5 和 SHA-1 的校验码:
命令如下:
MD5:
$md5sum <complete_path_of_file_name>
SHA-1:
$ sha1sum <complete_path_of_file_name>
在这里 file_name 指的是下载后的文件的完整路径。
在 Linux 上计算 MD5 和 SHA-1 校验码的例子:
MD5:
$md5sum /home/myuser/test_file2
d41d8cd98f00b204e9800998ecf8427e /home/myuser/test_file2
SHA-1:
$ sha1sum /home/myuser/test_file4
da39a3ee5e6b4b0d3255bfef95601890afd80709 /home/myuser/test_file4
在 AIX 上计算 MD5 和 SHA-1 的校验码:
命令如下
MD5:
$ csum <filename>
SHA-1:
$ csum -h SHA1 <filename>
在这里 file_name 指的是下载后的文件的完整路径。
在 AIX 上计算 MD5 和 SHA-1 校验码的例子:
MD5:
$ csum p8202632_10205_AIX64-5L_1of2.zip
1b58a3f5478fbdf9c660fcce5f9558cb p8202632_10205_AIX64-5L_1of2.zip
SHA-1:
$ csum -h SHA1 p8202632_10205_AIX64-5L_1of2.zip
be78759fe031cd3a59b8490ee1d27b1ca321dd8f p8202632_10205_AIX64-5L_1of2.zip
在 HPUX(PA-RISC 和 Itanium)上计算 MD5 和 SHA-1 的校验码:
命令如下
MD5:
$ openssl dgst -md5 <filename>
SHA-1:
$ openssl dgst -sha1 <filename>
在这里 file_name 指的是下载后的文件的完整路径。
在 HPUX(PA-RISC 或 Itanium)上计算 MD5 和 SHA-1 校验码的例子:
MD5:
$ openssl dgst -md5 oracle.aurora.javadoc.zip
MD5(oracle.aurora.javadoc.zip)= fc75f35af0d389cc0a7a1dd959ccb706
SHA-1:
$ openssl dgst -sha1 oracle.aurora.javadoc.zip
SHA1(oracle.aurora.javadoc.zip)= c8cbb951fc3905a545f139fd7f59bb07ebab136b
在 Windows 上计算 MD5 和 SHA-1 的校验码:
微软提供了一个名叫文件校验码完整性确认(File Checksum Integrity Verifier)的工具,可从 Microsoft Technet 知识库编号 841290 下载。
这个工具可用于 Windows 平台来校验下载的文件的完整性。
语法为:
fciv.exe -both <downloaded_filename>
例如,如下是从 My Oracle Support(MOS)上下载的一个补丁:
fciv -both p2617419_10102_GENERIC.zip
//
// File Checksum Integrity Verifier version 2.05.
//
MD5 SHA-1
-------------------------------------------------------------------------
64f18de4aa1a41894cf08cddc1cd1dbc 276c2c529324744021f279d84cbb46c189896390
p2617419_10102_generic.zip