簡體   English   中英

當想要在 python 中傳遞一個字符串作為哈希值時,我可以使用一個變量嗎?

[英]Can I use a variable when a want pass a string for hash value in python?

我看到我們可以為任何類型的哈希傳遞一個字符串,如下所示:

import hashlib
print hashlib.sha1('Whatever').hexdigest()

但是,如果我的字符串保持在某個變量上,例如:

import hashlib
test ="teste1234"
m = hashlib.sha1()
m.update(test)
print(m.hexdigest())

我怎樣才能做到這一點? 錯誤是“TypeError:Unicode 對象必須在散列之前編碼”,或者如果我只更改變量 test 的“Whatever”,給我這個錯誤:SyntaxError: invalid syntax

從文檔中,您應該傳遞一個二進制字符串來執行哈希,而不是 Unicode 字符串。 要編碼,只需鍵入以下內容:

import hashlib
test = "teste1234"

m = hashlib.sha1()
m.update(test.encode())

print(m.hexdigest())
# a1a8d617f884f106ccdcc6470c29cbdc4d9f7990

參考: hashlib 文檔Unicode 字符串文檔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM