如果你怕文件被篡改,那就这样做

通过
为了让你快速理解对称和
非对称加密,我煞费苦心...
你应该对
对称加密和非对称加密
有一定的理解了
我们再来思考一下
如果你想要在网上
发布一个你自己的文件
给别人下载
你怎么能够保证
别人下载你的文件
没有问题呢?
不是说你自己本身的问题
你的文件很屌,没毛病
但是有这么一种情况
有可能别人下载到的文件
并不是你原本发布的文件
被别人篡改
咋整?
那么我们就要用到
类似 MD5 这样的加密了
也就是这样
将你的文件
通过加密
生成指纹
在你发布文件的时候
顺便把指纹也公布了
那么别人下载你
这个文件的时候
也通过和你一样的
加密规则进行加密
生成出来的指纹
与你公布的指纹比对一波
如果指纹相同
那就说明这个文件没有被篡改过

这就是所谓的 Hashing 

也叫散列

通过散列函数加密生成的指纹
不可逆
除非加密函数太垃圾
产生“碰撞”的情况
但一般很少会出现这种情况
每一个文件生成的指纹
都是唯一的
生成指纹
散列不可逆
这种通过散列函数加密的
算法常见的有这么几个
其实我们去下载软件的时候
官方一般会提供原软件的指纹
比如这个 Tomcat
就用了 pgp 和 sha512 加密的算法
所以下载下来的软件
可以通过相应的算法生成指纹
进行对比
就不怕被人篡改
搞些病毒啥的了
在 python 中
有这么一个库专门来处理这些算法
就是 hashlib

比如我们在这里下载一下 tomcat 软件
下载完之后我们就使用 python 校验一下
python -c "import hashlib,sys;print(hashlib.sha512(open(sys.argv[1],'rb').read()).hexdigest())" apache-tomcat-8.5.43.zip 
这时候我们会得到指纹
可以看到和官方的一样
说明这个文件没有被篡改过
好了,又有问题了
如果小帅b伪装成你
发布文件给你的朋友
怎么办?
如何确保对方收到的文件
就是你本人发的呢?
先不跟你说
下回见
peace

扫一扫

学习 Python 没烦恼

点个在看啊~~(破音)

(0)

相关推荐