2015-06-17 2 views
3

Можете ли вы помочь мне решить эту проблему:Ошибка хеширование + Соль пароль

TypeError: can't concat bytes to str 

Я пытаюсь безопасно хранить хэш + соль паролей.
Я думаю, проблема в том, что моя соль является байтовым объектом.

Как я могу преобразовать его в строку?
Или есть способ хэша лучше?

import base64 
import hashlib 
import os 

def getDigest(password, salt=None): 
    if not salt: 
     salt = base64.b64encode(os.urandom(32)) 
     digest = hashlib.sha256(salt + password).hexdigest() 
     return salt, digest 

def isPassword(password, salt, digest): 
    return getDigest(password, salt)[1] == digest 


print(getDigest('batman')) 

ответ

3

Вы можете сделать salt = salt.decode("utf-8") после salt кодируется, чтобы преобразовать его в строку.