hashlib模組使用詳情

2022-03-21 15:13:30 字數 3426 閱讀 5822

python常用模組目錄

import hashlib

obj =hashlib.md5() #構造乙個hashlib的物件

obj.update(

"小馬過河

") #update對指定字串進行加密

print(obj)

--------------結果:

obj.update(

"小馬過河")

typeerror: unicode-objects must be encoded before hashing

import hashlib

obj =hashlib.md5()

obj.update(

"小馬過河

".encode("utf-8"

))print(obj,type(obj))

-------------------結果:

object @ 0x001c5590> '_hashlib.hash

'>

import hashlib

obj =hashlib.md5()

obj.update(

"小馬過河

".encode("

utf-8"))

result

=obj.hexdigest()

print(result)

--------------結果:

24f67b0f6d02adc8867d612e0e0fc40a

import hashlib

obj = hashlib.md5("mcw@xiaoma@aaaafffff".encode("utf-8"

)) #新增一些內容,提高加密複雜度。此處的字串也要先編碼,

obj.update(

"小馬過河

".encode('

utf-8'))

result =obj.hexdigest()

print(result)

-------------------結果:

b11740508f28e04837f2c0e3a58cf990

import hashlib

def get_md5(data): #傳參為需要加密的字串

obj = hashlib.md5("

sidrsicxwersdfsaersdfsdfresdy54436jgfdsjdxff123ad

".encode('

utf-8'))

obj.update(data.encode(

'utf-8'))

result =obj.hexdigest()          

return

result

val = get_md5('

123'

)print(val)

--------------結果:

35093270b6352fa9721370b781f7b4d7

import hashlib

user_list =

def get_md5(data):

obj = hashlib.md5("

12:;idrsicxwersdfsaersdfsdfresdy54436jgfdsjdxff123ad

".encode('

utf-8'))

obj.update(data.encode(

'utf-8'))

result =obj.hexdigest()

return

result

def register():

print(

'**************使用者註冊**************')

while

true:

user = input('

請輸入使用者名稱:')

if user == 'n'

:

return

pwd = input('

請輸入密碼:')

temp =

def login():

print(

'**************使用者登陸**************')

user = input('

請輸入使用者名稱:')

pwd = input('

請輸入密碼:')

for item in

user_list:

if item['

username

'] == user and item['

password

'] ==get_md5(pwd):

return

true

register()

result =login()

ifresult:

print(

'登陸成功')

else

: print(

'登陸失敗')

------------------------結果:

**************使用者註冊**************請輸入使用者名稱:小馬過河

請輸入密碼:

123456

請輸入使用者名稱:n

**************使用者登陸**************請輸入使用者名稱:小馬過河

請輸入密碼:

123456

登陸成功

#使用者登入場景分析:實現使用者註冊,然後進行使用者登入的**分析。

#**分析:

1、使用者登入需要使用密碼,密碼一定要加密,保證使用者的資訊保安。

1)加密可以使用hashlib模組進行加密。

2)加密可以寫成加密函式

3)提高密碼解密的複雜性,**中多加字串。(加密演算法雖然依然非常厲害,但是也存在缺陷,即:通過撞庫可以反解。所以,有必要對加密演算法中新增自定義key再來做加密。)

2、使用者註冊寫成使用者註冊的函式,使用者登入寫成使用者登入的函式。

3、先執行使用者註冊的函式,再執行使用者登入的函式

4、註冊與登入需要互動,用到input函式接收使用者輸入

5、如果使用者註冊和使用者登入用到死迴圈,那麼就要判斷用什麼來終止迴圈(比如這裡是輸入n)

6、使用者註冊提交的密碼加密的密文寫入資料庫。、使用者註冊提交的密碼加密的密文寫入資料庫。

7、使用者登入輸入的密碼,使用相同加密函式加密後與資料庫密文比對,相等就登入,否則就失敗

8、登入的本質是判斷從使用者接收的加密後密文和註冊時存入資料庫的密文對比,使用者名稱密文對比成功,則繼續往下執行登入後的操作。

9、使用者輸入密碼要防止旁人看到,可以使用getpass模組

10、與密碼相關的很重要,一定要加密。包括自己擁有的影響大的重要資料也要加密,防止黑客入侵獲取而洩密。

模組三hashlib模組

加密模組 摘要演算法 一堆加密演算法的集合體 import hashlib 給密碼加密。檔案的校驗。hashlib 將str型別 通過演算法 一串等長度的數字。1,不同的字串 轉化成數字肯定不同。2,相同的字串即使在不同的計算機上只要使用相同的加密方式 轉化成的數字一定相同。3,hashlib加密不...

加密模組hashlib模組

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

加密模組hashlib

md5加密 不可逆加密 碰撞解密 用資料再進行一次加密,與原加密結果做匹配 import hashlib data 資料 這個必須是字串型別的,其他型別的不可以 lock obj hashlib.md5 data.encode utf 8 傳入加密資料,生產加密鎖物件,result lock obj...