md5-sha1-哈希算法使用方法

常见的哈希算法有:MD5 和 SHA1
MD5 ,SHA1 的区别:
MD5的全称是Message-Digest Algorithm 5(信息-摘要算法)。MD5 算法的哈希值大小为 128 位。是一种不可逆的算法。
SHA1的全称是Secure Hash Algorithm(安全哈希算法)。SHA1 算法的哈希值大小为 160 位。是一种不可逆的算法。


SHA1抗暴力破解能力比MD5强。
缺点:产生SHA-1 报文摘要的运行速度比MD5 慢。

哈希算法具有以下特点:
1、压缩性:任意长度的数据,算出的哈希值长度都是固定的。
2、容易计算:从原数据计算出哈希值很容易。
3、抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的哈希值都有很大区别。
4、弱抗碰撞:已知原数据和其哈希值,想找到一个具有相同哈希值的数据(即伪造数据)是非常困难的。

产成固定长度MD5消息摘要

md5sum /etc/passwd
sha1sum /etc/passwd
  


echo 123 | md5sum 

echo 1234 | md5sum 
 
echo 123 | sha1sum 

echo 1234 | sha1sum 
  

[root@hcss-ecs-c16f ~]# md5sum /etc/passwd
82dbffafd2582106de4b0ccee8a3545f  /etc/passwd  32
[root@hcss-ecs-c16f ~]# sha1sum /etc/passwd 
adc647a5ad714415a9e96a5d9dc5e7e55c92f09a  /etc/passwd  40


[root@hcss-ecs-c16f ~]# echo 123 | md5sum 
ba1f2511fc30423bdbb183fe33f3dd0f  -

[root@hcss-ecs-c16f ~]# echo 1234 | md5sum 
e7df7cd2ca07f4f1ab415d457a6e1c13  -
 

[root@hcss-ecs-c16f ~]# echo 123 | sha1sum 
a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0  -
[root@hcss-ecs-c16f ~]# 
[root@hcss-ecs-c16f ~]# echo 1234 | sha1sum 
1be168ff837f043bde17c0314341c84271047b31  -
 
演示MD5保障数据的完整性

[root@hcss-ecs-c16f ~]# ls passwd*
passwd  passwd1  passwd.asc
[root@hcss-ecs-c16f ~]# diff passwd passwd1
[root@hcss-ecs-c16f ~]# md5sum passwd passwd1
82dbffafd2582106de4b0ccee8a3545f  passwd
82dbffafd2582106de4b0ccee8a3545f  passwd1
[root@hcss-ecs-c16f ~]# echo 11 >> passwd1 
[root@hcss-ecs-c16f ~]# diff passwd passwd1
32a33
> 11
[root@hcss-ecs-c16f ~]# md5sum passwd passwd1
82dbffafd2582106de4b0ccee8a3545f  passwd
0fda3178e343846107ce73444cd602e6  passwd1


扩展: 
弱抗碰撞:已知原数据和其MD5值,想找到一个具有相同MD5值的数据(即伪造数据)是非常困难的。

百度网盘中,如何实现秒传?比如rhel7.2.ios  3G的文件1秒就可以上传成功。百度网盘中存一个MD5值表, 判断两个文件的MD5是不是一样,如果一样,直接创建软链接。