Проблема с извлечением байт из бд
Есть бд в mySQL, один из столбцов имеет тип BLOB(байты). Но при извлечении и использовании его в дальнейшем, мне указывает, что это тип данных кортеж. В связи с чем у меня в коде вот такая ошибка
Traceback (most recent call last):
File "D:\socket\database.py", line 181, in <module>
new_password = hashlib.pbkdf2_hmac('sha256', new_password.encode('utf-8'), salt, 100000)
TypeError: a bytes-like object is required, not 'tuple'
А вот собственно сам код. Это извлечение кэшированного пароля из бд и соли. А после проверка совпадают ли пароли в бд и введенный пользователем пароль.
def sign_in(login):
try:
connection = pymysql.connect(
host="localhost",
port=3306,
user="root",
password="soldan1512",
database="chat_base",
cursorclass=pymysql.cursors.DictCursor
)
print("Successfully connected...")
print("#" * 20)
try:
# insert data
values = (login, )
with connection.cursor() as cursor:
select_password = "SELECT password FROM registration_table WHERE login = %s"
cursor.execute(select_password, values)
rows_password = cursor.fetchall()
select_salt = "SELECT password FROM registration_table WHERE login = %s"
cursor.execute(select_salt, values)
rows_salt = cursor.fetchall()
print("#" * 20)
return rows_password, rows_salt
finally:
connection.close()
except Exception as ex:
print("Connection refused...")
print(ex)
password, salt = sign_in('danila')
new_password = '123'
new_password = hashlib.pbkdf2_hmac('sha256', new_password.encode('utf-8'), salt, 100000)
if password == new_password:
print('yes')
Данные в бд есть, и слово по которому я извлекаю данные из бд, тоже там присутствует