Оператор 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
→ Ссылка