Как получить хеш строки md5 и SHA1 в Python3
Время чтение: 1 минуту 2022-04-22Стандартная библиотека hashlib позволяет использовать самые популярные алгоритмы хеширования в том числе алгоритмы, предоставляемые OpenSSL. Что бы посмотреть все доступные алгоритмы в том числе и OpenSSL достаточно выполнить следующий код.
1 2 3 4 |
import hashlib print(hashlib.algorithms_available) print(hashlib.algorithms_guaranteed) |
В консоли можно увидеть что-то вроде.
1 2 |
{'sha1', 'sha224', 'blake2b', 'sha256', 'md4', 'sha384', 'sm3', 'sha512_224', 'sha3_256', 'sha512_256', 'shake_256', 'blake2s', 'ripemd160', 'mdc2', 'sha3_384', 'whirlpool', 'sha3_224', 'sha512', 'md5-sha1', 'sha3_512', 'shake_128', 'md5'} {'sha256', 'sha3_224', 'shake_256', 'sha384', 'sha1', 'blake2s', 'sha512', 'sha3_512', 'sha224', 'sha3_384', 'shake_128', 'blake2b', 'md5', 'sha3_256'} |
Получим md5 строки.
1 2 3 4 |
h = "Test STR" md5 = hashlib.md5(h.encode('utf-8')).hexdigest() print(f"md5: {md5}") >>> 4c02b9deb4c14a2a4b756ac2ace44db1 |
Аналогичным образом можно использовать другие алгоритмы.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import hashlib h = "Test STR" md5 = hashlib.md5(h.encode('utf-8')).hexdigest() SHA1 = hashlib.sha1(h.encode('utf-8')).hexdigest() SHA224 = hashlib.sha224(h.encode('utf-8')).hexdigest() SHA256 = hashlib.sha256(h.encode('utf-8')).hexdigest() SHA384 = hashlib.sha384(h.encode('utf-8')).hexdigest() SHA512 = hashlib.sha512(h.encode('utf-8')).hexdigest() blake2s = hashlib.blake2s(h.encode('utf-8')).hexdigest() print(f"md5: {md5}") print(f"SHA1: {SHA1}") print(f"SHA224: {SHA224}") print(f"SHA256: {SHA256}") print(f"SHA384: {SHA384}") print(f"SHA512: {SHA512}") print(f"blake2s: {blake2s}") |
Для использования алгоритмов OpenSSL служит методы «new» и «update». Для примера возьмем алгоритм «sm3»
1 2 3 4 5 6 7 |
import hashlib h = "Test STR" hash_openssl = hashlib.new('sm3') hash_openssl.update(h.encode()) print(hash_openssl.hexdigest()) |