python 中的md5加密及其實現

2021-10-01 15:49:56 字數 880 閱讀 4362

開發環境 :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...