Python 入門之 內置模塊 -- hashlib模塊
1、hashlib
摘要算法,加密算法
(1)主要用途:
<1> 加密 : md5 sha1 sha256 sha512
md5,加密速度快,安全系數低
sha512 加密速度慢,安全系數高
<2> 校驗 : md5 sha1 sha256 sha512值
import hashlib
(2)hashlib的特征以及使用要點:
<1> bytes類型數據 ---> 通過hashlib算法 ---> 固定長度的字符串
<2> 當要加密的內容相同時,得到的密文一定是一樣的
<3> 當明文不一樣時,密文不一定一樣
<4> 轉化過程不可逆
(3)md5加密:
<1> 普通加密:
import hashlib
md5 = hashlib.md5() # 初始化
md5.update("alex".encode("utf-8")) # 將明文轉換成字節添加到新初始化的md5中
print(md5.hexdigest()) # 進行加密
#現在可以進行簡單的破解 -- 撞庫
<2> 加鹽加密 -- 提高安全性
加固定鹽
import hashlib
md5 = hashlib.md5("rimo_dsb".encode("utf-8")) # 初始化
md5.update("alex".encode("utf-8")) # 將明文轉換成字節添加到新初始化的md5中
print(md5.hexdigest()) # 進行加密
加動態鹽
import hashlib
user = input("username:")
pwd = input("password:")
md5 = hashlib.md5(user.encode("utf-8")) # 初始化
md5.update(pwd.encode("utf-8")) # 將明文轉換成字節添加到新初始化的md5中
print(md5.hexdigest()) # 進行加密
中文內容編碼不同時密文是不一致的,英文的
import hashlib
sha1 = hashlib.sha1()
sha1.update("日魔就是一個大SB".encode("utf-8"))
print(sha1.hexdigest())
sha1 = hashlib.sha1()
sha1.update("日魔就是一個大SB".encode("gbk"))
print(sha1.hexdigest())
(3)文件的一致性校驗:
? 如何驗證我們下載的資源是否有病毒呢?這就需要文件的一致性校驗了。在我們下載一個軟件時,往往都帶有一個MD5或者shax值,當我們下載完成這個應用程序時你要是對比大小根本看不出什么問題,你應該對比他們的md5值,如果兩個md5值相同,就證明這個應用程序是安全的,如果你下載的這個文件的MD5值與服務端給你提供的不同,那么就證明你這個應用程序肯定是植入病毒了(文件損壞的幾率很低)
例如: 校驗Pyhton解釋器的Md5值是否相同
import hashlib
def file_check(file_path):
with open(file_path,mode='rb') as f1:
md5= hashlib.md5()
while True:
content = f1.read(1024) # 2049 1025 1
if content:
md5.update(content)
else:
return md5.hexdigest()
print(file_check('python-3.6.6-amd64.exe'))
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
