Каково значение значения параметра maxmem в методе Python hashlib.scrypt?Python

Программы на Python
Anonymous
Каково значение значения параметра maxmem в методе Python hashlib.scrypt?

Сообщение Anonymous »

Я пытаюсь использовать hashlib.scrypt Python для хэширования паролей. Согласно OWASP, рекомендуемые настройки для scrypt:

... используйте scrypt с минимальным параметром стоимости ЦП/памяти
(2^17). , минимальный размер блока 8 (1024 байта)
и параметр распараллеливания 1.

В нескольких местах рекомендуется формула 128 * n * r в качестве значения maxmem.
Однако использование этой формулы приводит к следующей ошибке:

Код: Выделить всё

from hashlib import scrypt
scrypt(b'password', salt=b'775186574b308535c9f0c1bedec71374', n=(2 ** 17), r=8, p=1, maxmem=(128 * (2 ** 17) * 8))
ValueError: [digital envelope routines: EVP_PBE_scrypt] memory limit exceeded
Методом проб и ошибок я обнаружил, что использование 128 * n * r + (2 ** 10 + 2 ** 11) для maxmem является точным значение для устранения ошибки. Как правильно вычислить значение maxmem?

Подробнее здесь: https://stackoverflow.com/questions/786 ... scrypt-met

Вернуться в «Python»