模組三hashlib模組

2021-09-08 09:08:19 字數 2813 閱讀 3694

# 加密模組 摘要演算法 一堆加密演算法的集合體

import hashlib

# 給密碼加密。

# 檔案的校驗。

# hashlib: 將str型別 通過演算法 -----> 一串等長度的數字。

# 1,不同的字串 轉化成數字肯定不同。

# 2,相同的字串即使在不同的計算機上只要使用相同的加密方式 轉化成的數字一定相同。

# 3,hashlib加密不可逆,不能破解。

import hashlib

# md5 加密

# ret = hashlib.md5()

# ret.update('好123'.encode('utf-8')) # 51cb75f82eceb17b86f019e01618d75e

# print(ret.hexdigest())

## ret = hashlib.md5()

# ret.update('fdsjfklasdfsdaflsdfjsldfjsdfsdjfdfdsffdsjfsldfdf'.encode('utf-8')) # 51cb75f82eceb17b86f019e01618d75e

# print(ret.hexdigest())

## ret = hashlib.md5()

# ret.update('1'.encode('utf-8')) # 51cb75f82eceb17b86f019e01618d75e

# print(ret.hexdigest())

## # 經常設定的 111111 000000 123456 19890425 13582250000 password 等等,做了乙個對應表,一一對去尋找

# ret = hashlib.md5()

# ret.update('123456'.encode('utf-8')) # e10adc3949ba59abbe56e057f20f883e

# print(ret.hexdigest())

# 加鹽

# 讓你的密碼更複雜。

# ret = hashlib.md5('老男孩教育'.encode('utf-8'))

# ret.update('123456'.encode('utf-8')) # b08404ec951d75b6da37fdd1bfb8c1e9

# print(ret.hexdigest())

# 動態的鹽

# username = input('請輸入使用者名稱:')

# ret = hashlib.md5(username[::2].encode('utf-8'))

# ret.update('123456'.encode('utf-8')) # 765b4e7ed31b8aa07755d1c24c69d48c

# print(ret.hexdigest())

# md5 加密效率快,通用,安全性相對差

# sha系列,演算法更好 安全性高,效率低,耗時長

import hashlib

# ret = hashlib.sha1()

# ret.update('gjfds;gfjdgfkdg;lfdkg;fdlgk;fldgk;fldg'.encode('utf-8'))

# print(ret.hexdigest())##

# ret = hashlib.sha512()

# ret.update('gjfds;gfjdgfkdg;lfdkg;fdlgk;fldgk;fldg'.encode('utf-8'))

# print(ret.hexdigest())

# 檔案校驗。

# 檔案較小用下面**。

# def check_md5(file):

# ret = hashlib.md5()

# with open(file,mode='rb') as f1:

# ret.update(f1.read())

# return ret.hexdigest()

# print(check_md5('檔案校驗1'))

# print(check_md5('檔案校驗2'))

# ret = hashlib.md5()

# ret.update('老男孩教育是最好的培訓學校'.encode('utf-8'))

# print(ret.hexdigest()) # b549bba39c1e6fd58865b2ba61a3bdff

# ret = hashlib.md5()

# ret.update('老男孩教育'.encode('utf-8'))

# ret.update('是最好的'.encode('utf-8'))

# ret.update('培訓'.encode('utf-8'))

# ret.update('學校'.encode('utf-8'))

# print(ret.hexdigest()) # b549bba39c1e6fd58865b2ba61a3bdff

# 大檔案的校驗:

def check_md5(file):

ret = hashlib.md5()

with open(file,mode='rb') as f1:

while 1:

content = f1.read(1024)

if content:

ret.update(content)

else:

break

return ret.hexdigest()

print(check_md5('檔案校驗1'))

print(check_md5('檔案校驗2')

加密模組hashlib模組

資料時代,為了防止資料安全性,防止資料洩露,會對資料進行加密,對於一些敏感資料庫,更是如此。加密是最常見的保密手段,利用技術手段把重要的資料變為亂碼。hash型別屬於雜湊型別,把任意長度的資料通過演算法函式轉換成固定長度的值,特點 不可逆 無法根據雜湊值來還原原來的資料 定長輸出 無論輸入的原始資料...

python加密模組 hashlib模組

用於加密相關的操作,3.x裡代替了md5模組和sha模組,主要提供sha1,sha224,sha256,sha384,sha512,md5演算法 sha比md5 更複雜 md5 不能反解 具體使用方法 匯入模組 import hashlib 生成乙個加密的物件並複製給變數 m hashlib.md5...

python os模組和hashlib模組

import os os.getcwd def walk dirname for name in os.listdir dirname path os.path.join dirname,name if os.path.isfile path 判斷該路徑是否為乙個正常的檔案 print path e...