Python计算md5,linux计算字符串的md5
SHA1和MD5是唯一标识文件的重要符号。只有当SHA1或MD5的值匹配时,我们才能确保下载的文件是正确的。那么,如何在Linux系统上验证SHA1和MD5呢?接下来,让我们用学习或边肖来研究它。
如何用Linux检查SHA1和MD5
MD5检查
原理:文件的MD5哈希值是通过对文件进行MD5哈希得到的。下载后,文件在发布者发布后是否被篡改,可以根据文件的MD5哈希值与发布者提供的MD5哈希值是否一致来判断。
描述:它是一种具有广泛应用的长寿命散列算法。它也常用于在网站上存储密码。文件生成的MD5哈希值是唯一的,但是通过对文件进行一些修改,它可以在MD5之后匹配文件的哈希值。
用法:在CentOS中,很容易散列MD5文件。只需要一个md5sum命令。
代码如下:
# $是一个终端提示,没有输入。
#标记为注释
#没有提示的是输出
直接输出MD5混合列
$ m D5 sum你的下载文件名
f4a 1b 802373 c 57 c 10 c 926 EB7AC 823 D8您的下载文件名称
将MD5混合列值保存到md5-hash.txt文件中。
$ m D5 sum your-download-file-name MD5-hash . txt
#显示输出md5-hast.txt的内容
$ cat md5-hash.txt
f4a 1b 802373 c 57 c 10 c 926 EB7AC 823 D8您的下载文件名称
检查通过md5-hash.txt下载的文件是否正确。
$ md5sum -c md5-hash.txt
你的下载文件名:好的
如果您是文件的发布者,可以在md5sum中将文件的哈希值发送给验证者。这样,下载文件的人就可以用MD5哈希值验证文件的正确性。相反,在网站上下载文件后,我们同时获得发布者的MD5哈希值和本地生成的哈希值的比较。如果有匹配,我们认为文件是正确的。
SHA1支票
原理:原理和MD5一样。通过评估文件的混合列表,与文件发布者发布的混合列表值进行比较,通过是否相等来判断文件是否被篡改。
注:SHA1 20混合评估法可以说是MD5 (SHA1 20位和MD5 16位)的升级版。在混沌评估中,MD5的退出阶段被SHA1占据。SHA家族有五种算法:SHA-1、SHA-224、SHA-256、SHA-384和SHA-512,后者有时被称为SHA2。
使用:CentOS包含SHA1命令。sha1sum
代码如下:
#描述同上。
#直接输出sha 1混合柱
$ sha1sum您的下载文件名
12dc 96 CBD 822598 c 1230 c 87622 f 3591461 a 77227您的下载文件名称
将sha1哈希值保存到文件
$ sha1 sum your-downloaded-file-name sha1-hash . txt
#显示文件内容
$ cat sha1-hash.txt
12dc 96 CBD 822598 c 1230 c 87622 f 3591461 a 77227您的下载文件名称
检查sha1-hash.txt中的下载文件your-downloaded-file-name
请注意,txt文件中的路径必须是已知的# file。
$ sha1sum -c sha1-hash.txt
你的下载文件名:好的
这个SHA1基本上与MD5相同。需要补充的是,无论是使用md5sum还是sha1sum,在检查文件时一定要保证能根据文件中提供的路径找到文件。找不到文件时无法检查文件。
如果你想检查多个文件的散列,你可以用一个文件保存多个文件的散列。
PGP检查
原理:使用非对称加密,程序生成唯一的密钥对(公钥和私钥),公钥和私钥/安全密钥。操作如下。
1.发布者使用分发文件中生成的密钥对中的秘密密钥进行签名,以获得签名文件(签名)。
2.发布者将密钥对中的公钥发布给公钥服务器。
3.发行者将文件与私钥生成的签名一起发行;
4.验证者下载由发行者发行的文档和签名;
5.发行者在步骤2中发布的公钥由程序使用PGP获得
6.使用公钥验证文件签名。
注意:在签名算法中,密集
密钥的用途有:公钥用于信息加密和验证,私钥用于解密和签名。私钥在信息发布者,公钥可以随意分发。发布者用密钥对信息进行签名,接收者获得公钥后可以用公钥验证发布者发布的信息的签名。如果验证失败,则认为信息已被篡改。在网络中,我们经常遇到的HTTPS协议使用了相同的机制。
用法:由于PGP是一个商业应用,在CentOS/Linux中,gpg(即GnuPG)也有类似的功能,同样符合OpenPGP数据加密标准(RFC 4880)。如果没有安装,可以用yum install gnupg安装。命令是:GPG
代码如下:
#描述同上。
#因为流程比较复杂,而且在实际使用中,验证也比较多,所以这里只介绍文件的验证流程。
#获取文件和签名时,我们先用gpg检查签名,然后文件必须存在。
$ gpg -验证下载的文件签名. asc
这里有很多情况。如果你只有一个签名,但是生成签名的文件不存在(系统没有找到,所以一般应该放在同一个目录下),返回的是:
代码如下:
Gpg:没有签名的数据
gpg:不能散列数据文件:没有数据
当hldxmy有一个文件,但是没有对应签名的公钥时,gpg返回的信息类似如下:
代码如下:
Gpg:签名创建于美国中部时间2013年5月6日星期一18: 27: 27,使用RSA,密钥号47ACDAFB。
Gp:无法检查签名:没有公钥
注意:上述信息会在不同的文件和操作系统上生成不同的信息。但是在没有公钥的时候,可以发现gpg提供了一个签名对应的密钥号:47ACDAFB。这是我们需要找到的公钥。
如上所述,发布者已经将公钥发布到公钥服务器供验证者下载,所以我们需要从公钥服务器下载公钥。要下载公钥,密钥号非常重要。
的可用公钥服务器可以通过维基百科上的密钥服务器条目查看一些常用密钥服务器的列表。在此使用hkp://pgp.mit.edu:
代码如下:
#获取服务器上的公钥
$ gpg-key server hkp://PGP . MIT . edu-recv-keys 47 ACD AFB
Gpg:从pgp.mit.edu hkp服务器下载密钥 47 acdafb。
Gp: key 47ACDAFB:公钥“Stephan Mueller”已导入。
Gpg:没有找到绝对可信的密钥。
Gpg:处理的总数量:1
Gpg:已导入:1
- recv-keys应与- keyserver一起使用。在导入密钥对的公钥之后,我们可以使用这个公钥来验证我们的签名。
再次运行我们之前的验证命令(gpg - verify sign-file),就可以看到验证结果了。
代码如下:
#此时,我们将再次验证我们的签名,并获得验证结果。
$ gpg -验证下载的文件签名. asc
Gpg:签名创建于美国中部时间2013年5月6日星期一18: 27: 27,使用RSA,密钥号47ACDAFB。
Gpg:来自“斯蒂芬穆勒”的声音签名
Gpg:警告:这个密钥没有经过可信签名的认证!
Gpg:没有证据表明这个签名属于其声称的持有者。
万能钥匙指纹:B0 F4 2d 33 73 F8 F6 f 510d 4 2178 520 a 9993 a1 c 0 52 F8
看到这个结果,至少确认一个结果:这个文件没有被篡改。
总的来说,我们就到此为止了。
但是请注意,消息中有一个警告,说明这是一个不可信的签名身份验证。因为任何人都可以发布这个公钥,如果真的需要进一步认证,可以联系真正的发布者,用——指纹确认这个密钥的信息,然后再进行签名认证!是这个算法的一个弱点。
如果签名认证通过了,就可以安心编译安装到自己的系统中了。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。