1. 程式人生 > 實用技巧 >多測師講解pyhon__hashlib_高階講師肖sir

多測師講解pyhon__hashlib_高階講師肖sir

一、加密,加密成16進位制的字串

# import hashlib  # 匯入hashlib模組
# md = hashlib.md5() # 獲取一個md5加密演算法物件
# md.update('需要加密的字元'.encode('utf-8')) # 制定需要加密的字串
# print(md.hexdigest()) # 獲取加密後的16進位制字串

import hashlib
md5 = hashlib.md5()
md5.update('123 '.encode("utf-8"))
md5.update('456'.encode("utf-8"))
print(md5.hexdigest())

很多使用者喜歡用123456,888888,password這些簡單的口令,黑客可以事先計算出這些常用口令的MD5值,得到一個反推表: 如:
'e10adc3949ba59abbe56e057f20f883e': '123456'
'21218cca77804d2ba1922c33e0151105': '888888'
'5f4dcc3b5aa765d61d8327deb882cf99': 'password'

hashlib.md5("123456".encode("utf8")) #裡邊的salt內容則稱之為加鹽






雜湊訊息鑑別碼,簡稱HMAC,是一種基於訊息鑑別碼MAC(Message Authentication Code)的鑑別機制。使用HMAC時,訊息通訊的雙方,通過驗證訊息中加入的鑑別金鑰K來鑑別訊息的真偽;(相當於對暗號)



案例1:

python hashlib md5演算法加密使用者密碼登入程式

import hashlib

def md5(arg):
'''
用於把使用者的密碼加密
'''
md5 = hashlib.md5()
md5.update(bytes(arg, encoding='utf-8'))
return md5.hexdigest()
def register(use1r,passwd):
#使用者註冊的時候把密碼加密新增到檔案
with open("db", 'a') as f:
tmp = "\n" + user + "|"+ md5(passwd)
f.write(tmp)
return True
def login(user,passwd):
#使用者登入時候認證
with open('db','r') as f:
for i in f:
c = i.strip()
s = c.split("|")
if s[0]== user and s[1] == md5(passwd):
return True
sum = input("1登入 2註冊:")
if sum == "1"or sum == "2":
user = input("請輸入賬號:")
passwd = input("請輸入密碼:")
if sum =="1":
if login(user,passwd):
print("登入成功")
else:
print("登入失敗")
if sum =="2":
if register(user,passwd):
print("註冊成功")
else:
print("輸入錯誤")