为了让你快速理解对称和非对称加密,我煞费苦心...
你应该对对称加密和非对称加密有必定的理解了
咱们再来思考一下若是你想要在网上发布一个你本身的文件给别人下载
你怎么可以保证
别人下载你的文件没有问题呢?
不是说你本身自己的问题
你的文件很屌,没毛病
可是有这么一种状况有可能别人下载到的文件并非你本来发布的文件
被别人篡改了咋整?
那么咱们就要用到
相似 MD5 这样的加密了
也就是这样
python
将你的文件
经过加密生成指纹
在你发布文件的时候顺便把指纹也公布了
那么别人下载你这个文件的时候
也经过和你同样的加密规则进行加密
生成出来的指纹
与你公布的指纹比对一波
若是指纹相同那就说明这个文件没有被篡改过
算法
这就是所谓的 Hashing apache
也叫散列tomcat
经过散列函数加密生成的指纹是不可逆的
除非加密函数太垃圾产生“碰撞”的状况
但通常不多会出现这种状况每个文件生成的指纹都是惟一的
ide
生成指纹
函数
散列不可逆
这种经过散列函数加密的算法常见的有这么几个
加密
其实咱们去下载软件的时候官方通常会提供原软件的指纹
好比这个 Tomcat就用了 pgp 和 sha512 加密的算法
spa
因此下载下来的软件能够经过相应的算法生成指纹进行对比
就不怕被人篡改搞些病毒啥的了
在 python 中有这么一个库专门来处理这些算法就是 hashlib
好比咱们在这里下载一下 tomcat 软件
下载完以后咱们就使用 python 校验一下
3d
python -c "import hashlib,sys;print(hashlib.sha512(open(sys.argv[1],'rb').read()).hexdigest())" apache-tomcat-8.5.43.zip
能够看到和官方的同样说明这个文件没有被篡改过
好了,又有问题了
若是小帅b假装成你发布文件给你的朋友
怎么办?如何确保对方收到的文件就是你本人发的呢?
先不跟你说下回见orm