主要用於對字串的加密,最常用的為md5加密:
import hashlib
def get_md5(data):
obj = hashlib.md5()
obj.update(data.encode('utf-8'))
result = obj.www.cppcns.comhexdigest()
return result
val = get_md5('123') #這裡放入要加密的字串文字。
print(val)
如果要避免撞庫的行為,可以加鹽將加密數值改為更加複雜的,這樣破譯起來更加不容易。
import hashlib
def get_md5(data):
obj = hashlib.md5('abclasjd;flasdkfhowheofwa123113'.encode('utf-8')) #這裡加鹽
obj.update(data.encode('utf-8'))
result = obj.hexdigest()
return result
val = get_md5('123') #這裡放入要加密的字串文字。
print(val)
案例:說明:使用者輸入新建的使用者名稱和密碼,以md5加密的形式存入檔案中。再讓使用者輸入使用者名稱密碼進行匹配。
#!/usr/bin/env python
# _*_ coding=utf-8 _*_
import hashlib
def get_md5(data):
'''登入加密,將傳入的密碼進行加密處理,並返回值。
:param data: 使用者的密碼
:return: 返回md5加密後的密碼
'''obj = hashlib.md5('abclasjd;flasdkfhowheofwa123113'.encode('utf-8')) #這裡加鹽
obj.update(data.encode('utf-8'))
result = obj.hexdigest()
return result
def seve_user(username,password):
'''將加密後的密碼和使用者名稱進行儲存,以| 來分割,檔案為test.txt
:param username: 需要建立的使用者名稱
:param password: md5後的密碼
:return: 需要更改的地方,return判斷是否儲存成功。
'''user_list = [username,get_md5(password)]
lis = '|'.join(user_list)
with open('test.txt',encoding='utf-8',mode='a')as f:
f.write(lis+'\n')
def read_user(username,password):
'''來判斷使用者登入所輸入的使用者名稱和是否正確。
:param username: 使用者輸入的使用者名稱
:param password: md5加密後的密碼
:return: 如果匹配返回true
'''with open('test.txt',mode='r',encoding='utf-8') as f:
www.cppcns.com for item in f:
infomation = item.strip()
user,pwd = infomation.split('|')
if username == user and password == pwd:
return true
while true:
'''迴圈需要建立的使用者
'''user =input('請輸入使用者名稱:')
if user.upper() == 'n':
break
pwd = input('請輸入密碼:')
if len(user) and len(pwd) < 8:
print('使用者名稱密碼不符合要求,請重新輸入。')
else:
seve_user(user,pwd)
while true:
'''迴圈使用者登入
'''usewww.cppcns.comr_name = input('請輸入使用者名稱:')
password = input('請輸入密碼:')
start_user = read_user(user_name,get_md5(password))
if start_user:
print('登入成功')
break
else:
print('登入失敗')
本文標題: python hashlib加密模組常用方法解析
本文位址: /jiaoben/python/293517.html
python hashlib模組使用詳解
這個模組實現了乙個通用的介面來實現多個不同的安全雜湊和訊息摘要演算法。包括fips安全雜湊演算法sha1,sha224,sha256,sha384和sha512 在fips 180 2中定義 以及rsa的md5演算法 在網際網路rfc 1321術語 安全雜湊 和 訊息摘要 是可互換的。較舊的演算法被...
python hashlib你了解多少?
hashlib 可以將乙個字串資料型別的變數轉化成乙個定長的密文的字串,字串裡的每乙個字元都是16進製制數字。演算法 對同乙個字串,用相同的演算法,相同的手段去進行摘要,獲取的值總是相同的。對於同乙個字串,不管什麼環境 什麼語言 多少次執行,使用相同的演算法得到的結果永遠是相同的。只要不是相同的字串...
Python hashlib的簡單使用
hashlib模組針對不同的安全雜湊和訊息摘要演算法實現了乙個通用的介面,其中包括sha1,sha224,sha256,sha384,sha512演算法以及rsa的md5演算法。第一步import hashlib 第二步建立所需的hash演算法物件。sha256 hashlib.sha256 第三步...