1. 程式人生 > >python3 TypeError: Unicode-objects must be encoded before hashing

python3 TypeError: Unicode-objects must be encoded before hashing

python3下,利用hash值對字串進行md5加密時報錯:
TypeError: Unicode-objects must be encoded before hashing

原因是:
python3跟python2區別:python3下字串為Unicode型別,而hash傳遞時需要的是utf-8型別,因此,需要型別轉換
呼叫函式時,將字串進行型別轉換

import hashlib

def get_md5(s):
    m = hashlib.md5()
    m.update(s)
    return m.hexdigest()

print(get_md5("gg".encode("utf8"))) 

或者
def get_md5(s):
    m = hashlib.md5()
    m.update(str(s).encode('utf-8'))
    return m.hexdigest()

print(get_md5("gg")) 

done!

相關推薦

python3 TypeError: Unicode-objects must be encoded before hashing

python3下,利用hash值對字串進行md5加密時報錯:TypeError: Unicode-objects must be encoded before hashing 原因是:python3跟python2區別:python3下字串為Unicode型別,而hash傳遞時需要的是utf-8型別,因此,

python md5 問題(TypeError: Unicode-objects must be encoded before hashing

import hashlib import sys def md5s(): m=hashlib.md5() strs=sys.argv[1] m.update(strs.encode("utf8")) print(m.hexdigest()) if __name_

django註冊在使用hashlib對密碼加密時報Unicode-objects must be encoded before hashing

使用 之前 clas 增加 () 加密 hashlib enc -o 在使用sh1等hashlib方法進行加密時報:Unicode-objects must be encoded before hashing 解決辦法:對要加密的字符串指定編碼格式 解決之前: s1=sh

Unicode-objects must be encoded before hashing

報錯程式碼: md5 = hashlib.md5() md5.update(('This is a sentence.')) md5.update(('This is a second sentence.')) print (u'不出意外,這個將是“亂碼”:', md5.digest()) pr

Python hashlib Unicode-objects must be encoded before hashing

Python2中沒有這個問題 python3中 hashlib.md5(data)函式中data 引數的型別應該是bytes hash前必須把資料轉換成bytes型別 Python 2.7.12 (de

Python 讀寫文件 中文亂碼 錯誤TypeError: write() argument must be str, not bytes+

with open handle hand 之前 med str 進制 pen set 今天寫上傳文件代碼,如下 def uploadHandle(request): pic1=request.FILES[‘pic1‘] picName=os.path.j

Python錯誤TypeError: write() argument must be str, not bytes

and 原來 打開文件 進制 存儲方式 byte pen python3 str 小記一下,今天使用open打開文件的時候出現了下面的錯誤。 註:我用的是Python3.6.1版本。 TypeError: write() argument must be str, not

python報錯 TypeError: string indices must be integers

info span 判斷 integer lte split error ret str 所以在讀取字典的時候,最好先判斷類型,然後再查看它是否已經有這樣的屬性: type(mydict) == type({}) #檢查不是字典 如果是字典,再看看有

Python_異常:TypeError: write() argument must be str, not list

src txt -c file 技術分享 line ffffff code err 文件寫入操作時,報錯:TypeError: write() argument must be str, not list 原因:python寫入的內容要是字符串類型的 上代碼: fp = o

TypeError: argument 1 must be an integer, not _subprocess_handle/OSError: [WinError 87]

hand string peer win creat step python3 last 階段 Error Msg: Traceback (most recent call last): File "c:\python27\lib\site-packages\cele

Python 讀寫檔案 中文亂碼 錯誤TypeError: write() argument must be str, not bytes+

今天使用Python向檔案中寫入中文亂碼,程式碼如下: fo = open("temp.txt", "w+") str = '中文' fo.write(str) fo.close() 1 2 3 4

問題:(機器學習)TypeError: write() argument must be str, not bytes

TypeError: write() argument must be str, not bytes 原因是開啟檔案的方式有問題,儲存方式預設為二進位制方式。 把其中的'w'改為'wb+'就好了 下一個問題出來了。。。 UnicodeDecodeError: 'utf-8

【每日BUG】:Python錯誤TypeError: write() argument must be str, not bytes

小記一下,今天使用open開啟檔案的時候出現了下面的錯誤。 注:我用的是Python3.6.1版本。 TypeError: write() argument must be str, not bytes 網上搜索才發現原來是檔案開啟的方式有問題。 之前檔案開啟的語句是:

python報錯:TypeError: slice indices must be integers or None or have an __index__ method

宣告:本文為博主原創文章,不可轉載 https://blog.csdn.net/jjddss/article/details/73469104 在使用Python進行矩陣操作時,當內部含有除法時,會產生錯誤: TypeError: slice indices must be integers

TypeError: write() argument must be str, not bytes報錯

with open error: open b+ 問題: 方式 result pen bytes TypeError: write() argument must be str, not bytes 之前文件打開的語句是: with open(‘C:/result.pk‘,

python 之報錯:TypeError: write() argument must be str, not bytes

在用 pickle.dump() 儲存二進位制檔案時,一直報錯,程式如下: with open(os.path.join(FLAGS.train_data_dir, 'files.log'), 'w') as f: pickle.dump([training_paths, testing_

faster rcnn報錯:TypeError: slice indices must be integers or None or have an __index__ method

https://blog.csdn.net/qq_27637315/article/details/78849756 faster rcnn報錯:TypeError: slice indices must be integers or None or have an __index__ method

python pickle模組TypeError: write() argument must be str, not bytes

問題: TypeError: write() argument must be str, not bytes 解決方法: 這是開啟檔案的時候報的錯,報這個錯說明需要用二進位制形式開啟檔案。就是在開啟方式裡面加一個b with open(file,"wb") as f: pic

NodeJs TypeError: First argument must be file descriptor解決方法

         最近在學習NodeJs,在練習一個例子的時候發現老是報:TypeError: First argument must be file descriptor,程式碼如下: var fs

statsmodels.tsa.arima_model預測時報錯TypeError: int() argument must be a string, a bytes-like object or a number, not 'Timestamp'

進行 時報 參數 csv 別人 間隔 get req ice 在 python 中用 statsmodels創建 ARIMA 模型進行預測時間序列: import pandas as pd import statsmodels.api as sm df = pd.read