爲了讓你快速理解對稱和非對稱加密,我煞費苦心...
你應該對對稱加密和非對稱加密有必定的理解了
咱們再來思考一下若是你想要在網上發佈一個你本身的文件給別人下載
你怎麼可以保證
別人下載你的文件沒有問題呢?
不是說你本身自己的問題
你的文件很屌,沒毛病
可是有這麼一種狀況有可能別人下載到的文件並非你本來發布的文件
被別人篡改了咋整?
那麼咱們就要用到
相似 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