python不能加密 Python之加密模組

2021-10-11 03:24:03 字數 1530 閱讀 9432

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直譯器...