Муню

X
//
Главная » Python полезное » Как получить хеш строки md5 и SHA1 в Python3

Как получить хеш строки md5 и SHA1 в Python3

Время чтение: 1 минуту 2022-04-22

Стандартная библиотека hashlib позволяет использовать самые популярные алгоритмы хеширования в том числе алгоритмы, предоставляемые OpenSSL. Что бы посмотреть все доступные алгоритмы в том числе и OpenSSL достаточно выполнить следующий код.

import hashlib

print(hashlib.algorithms_available)
print(hashlib.algorithms_guaranteed)

В консоли можно увидеть что-то вроде.

{'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 строки.

h = "Test STR"
md5 = hashlib.md5(h.encode('utf-8')).hexdigest()
print(f"md5: {md5}")
>>> 4c02b9deb4c14a2a4b756ac2ace44db1

Аналогичным образом можно использовать другие алгоритмы.

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»

import hashlib

h = "Test STR"
hash_openssl = hashlib.new('sm3')
hash_openssl.update(h.encode())

print(hash_openssl.hexdigest())
X