hashlib
содержит реализации для алгоритмов хеширования.К сожалению, два последовательных вызова hashlib.sha256()
не производят два разных экземпляра SHA256, но один и тот же: при повторном вызове hashlib.sha256()
будет возвращать один и тот же объект каждый раз.Итак, очевидно, у нас есть синглтон здесь
Это плохо во всех ситуациях, когда требуется какой-либо параллелизм.Кроме того, это очень плохо в ситуациях, когда вы хотите предоставить объект хеширования для какого-либо алгоритма.В моем случае: тесты не выполняются, поскольку один и тот же объект используется повторно вместо создания нового.
Мой вопрос: как создать два экземпляра SHA256 (или любого другого алгоритма хеширования)?
Пример:
import hashlib
print(hashlib.sha256())
print(hashlib.sha256())
Будет выведено что-то вроде:
<sha256 HASH object @ 0x7fb3611b4710>
<sha256 HASH object @ 0x7fb3611b4710>