hashlib模組
加密方式以md5方式加密舉例
是標準模組,直接匯入即可
還有其他的加密方式,比如:.sha1()、.sha224()、.sha256()等,加密後的字串長度更長,安全性更高
一、加密步驟
1、字串先轉成二進位制型別
使用.encode()方法轉成二進位制型別
importhashlib
password='123456'
print(password.encode())#字串不能直接加密,要先轉成二進位制型別的才可以加密#結果為:b'123456'
2、使用加密方法
使用.hexdigest()方法輸出加密後內容
importhashlib
password='123456'm=hashlib.md5(password.encode()) #先轉成二進位制,再加密#print(dir(m)) #由於這個加密模組pycharm提供不了提示方法,所以如果想知道都有什麼方法,可以使用內建函式dir(),使用這條語句就能列印出所有方法了
print(m.hexdigest())
3、列印加密後的內容
使用dir()內建函式顯示該變數的所有方法
由於該模組pycharm無法提供提示方法,即輸入m「.」不出來方法,所以可以使用內建函式dir(),將所有方法列印出來。
#print(dir(m)) #由於這個加密模組pycharm提供不了提示方法,所以如果想知道都有什麼方法,可以使用內建函式dir(),使用這條語句就能列印出所有方法了
print(m.hexdigest())
二、加密相關
1、檢驗加密結果
由於md5方式加密完的字串無論原字串有多長都是32位,因此可以使用len()方法檢驗是否加密成功:
print(len(m.hexdigest())
2、md5加密之後是不可逆的
網路上可以解密的原理是撞庫,即:將常用的密碼加密完存在資料庫裡,然後直接搜庫。
如果輸入的加密後密碼碰巧資料庫裡有,就能把對應的加密前密碼返回給你,並不是真正的解密。
3、其他的加密方式
m=hashlib.sha1(password.encode())#不同的加密方式
m=hashlib.sha224(password.encode()) #不同的加密方式
m=hashlib.sha256(password.encode()) #不同的加密方式
三、加鹽
原理:如果要對password=123456加密,這個明文密碼太簡單,容易撞庫解密,所以在123456之後隨機加乙個字串,比如abc,這樣實際是對123456abc進行加密,如果不知道abc這個字串,反解的可能性降低,安全性更高。這樣的乙個字串就叫做鹽。
四、實際應用
#實現加密:傳入乙個值,如果有鹽值,則加鹽加密;否則直接加密
def my_md5(s:str,salt=none):
s=str(s)ifsalt:
s=s+salt
m=hashlib.md5(s.encode())returnm.hexdigest()
Python學習筆記 1 1 2 認識Python
一.課程目標 二.詳情解讀 1.初識pythonpython語言是一種高階程式語言,它於1991年由吉多.範羅蘇姆 guido van rossum 發明。目前主要應用於web開發 gui開發 網路爬蟲 資料科學 人工智慧等領域。python官方 python語言也是一種多正規化程式語言,即物件導向...
python實現演算法 kmp演算法python實現
kmp演算法python實現 kmp演算法 kmp演算法用於字串的模式匹配,也就是找到模式字串在目標字串的第一次出現的位置 比如abababc 那麼bab在其位置1處,bc在其位置5處 我們首先想到的最簡單的辦法就是蠻力的乙個字元乙個字元的匹配,但那樣的時間複雜度會是o m n kmp演算法保證了時...
python呼叫qt Qt 下呼叫 Python
qt是乙個跨平台的c 圖形使用者介面應用程式框架,而python是一門非常強大的程式語言,本文主要介紹了如何在osx系統下qt呼叫python指令碼。先上 include 包含呼叫python相應的標頭檔案 include int main int argc,char ar 初始化python直譯器...