Оператор print() выводит адрес в памяти а не данные
У меня проблема что функция print() выводит только строку
<pbkdf2.PBKDF2 object at 0x000001D2D75EC320>
А не результат.
Вот мой код:
import data_for_password_generator
import pbkdf2 as HKDF
import hashlib
import os
def super_key():
data = data_for_password_generator.alls_parameters()
goto_desegeter = hashlib.sha256()
result = HKDF.PBKDF2(bytes(data, 'utf-8'), os.urandom(512), 64000, goto_desegeter)
wery_result = str(result)
print(str(wery_result))
super_key()
В другом файле вся информация даётся в формате str()
Python версии 3.12.2
Ответы (1 шт):
Автор решения: SVBazuev
→ Ссылка
Малость поправил:
# import data_for_password_generator
import pbkdf2 as HKDF
import hashlib
import os
def super_key():
# Тестовый пароль
data = 'testPASSWORD'
# Генерируем соль (рекомендуемая длина для соли - 16 байт)
salt = os.urandom(16)
print(f'Соль: {salt}')
# Создаем объект PBKDF2 с использованием hashlib.sha256
result = HKDF.PBKDF2(bytes(data, 'utf-8'), salt, 100000, hashlib.sha256)
# Преобразуем результат в шестнадцатеричную строку
wery_result = result.hexread(32)
# Выводим результат
print(f'Результат: {wery_result}')
super_key()
Не забывайте что надо сохранять не только хэш пароля,
но и соль для последующих проверок...
Соль: b'b\xcc\xc8\x90\x90Jp\xa5i\x93H\xec\xbe\x8e>\x9b'
Результат: 90f803d7983267b9f06e44c7ed64f0d8f1fe13ea27f19bd8ba45d8f2701c4fa9