Код:
импорт hashlib
Защиту derivekey (ключевая фраза, округляет = 1024):
Защиту getdigest (х):
вернуть hashlib.sha256 (х) .digest ()
конкатенации = getdigest (ключевая фраза)
ибо я в диапазоне (раундов):
Результат = getdigest (конкатенация)
конкатенации = результат конкатенации +
возвращаемый результат
печать derivekey ( «это тест»). закодировать ( «гекс»)
Это просто применяет sha256 кучу раз в то время как предваряя результаты, чтобы увеличить размер, с конечным результатом основываясь на всей серии (как в случае с каждым промежуточным результатом).
Это очень простой алгоритм, но, насколько я могу сказать, что это, кажется, столь же полезным, как Scrypt (который является более сложным). Последовательность дайджесты каждый полагаться на наличие последних из них, так что это должно быть сделано последовательно, и должен использовать память.
Могу ли я что-то отсутствует критическое здесь?