開發環境 :python3
用到的庫:hashlib, random
md5加密,用到了hashlib庫中的md5
random用來生成鹽
import hashlib
import random
# 簡單版的md5加密返回密文函式
def mymd5(pw):
md = hashlib.md5() # 生成md5對像
md.update(pw.encode('utf-8')) # 加密,加密密碼的時候,必須對密碼進行編碼,否則會報錯
return md.hexdigest() # 返回16進製制密文
# 這是乙個給密碼加鹽的函式,預設加入10位數的隨機數鹽, 加鹽方式為在第二位和最後更加5位的鹽
def add_salt_md5(pw, n=10):
salt_list = '`1234567890-=qwertyuiopasdfghjklzxcvbnm,.'
# 產生長度為10的隨機數(隨機數的長度可以在引數中自定義
# 產生的鹽會作為結果之一進行返回
if n < 4: # 防止鹽的位數過少,導致加密效果不好
n = 4
if pw == '': # 檢驗密碼是不是為空,這個一般可以省略
return false
salt = ''.join(random.sample(salt_list, n))
pw = ''.join([pw[0], salt[0: n//2], pw[1:], salt[n//2:]])
# 返回鹽和新的密碼, salt要存入數所庫,新密碼再用mymd5 加密,產生密文存入資料庫
return salt, pw
python中的md5加密
在hashlib庫的hash演算法中,提供了很多加密演算法,有 sha1 sha224 sha256 sha384 sha512 blake2b 和 blake2s md5 今天來看下試用md5加密。1,匯入hashlib模組 import hashlib2,建立md5物件 m hashlib.md...
python中的md5 加密
有關hash加密演算法,python3都放在hashlib標準庫。update arg 接受arg來更新物件,ps 只接受byte型別。因此輸入前要在引數前轉換型別。hexdigest 方法,該方法用於將hash中的資料轉換成只包含十六進製制的數字。demo import hashlib md5 h...
python 使用md5加密
python中使用md5進行加密字串 author administrator coding utf 8 import hashlib aa 123456 需要加密的字串 defmd5encode str 建立md5物件 m hashlib.md5 m.update str 傳入需要加密的字串進行m...