Алгоритм дайджеста сообщения MD5(английский: алгоритм MD5 Message-Digest), широко используемыйкриптографическая хэш-функция, может генерировать 128-битный (16байт) хэш-значения (hash value), используемого для обеспечения полной и непротиворечивой передачи информации. MD5 от американских криптографовРональд Левист(Рональд Линн Ривест), опубликованный в 1992 году для заменыMD4алгоритм.
Обзор
Код проверки MD5 вычисляется хэш-функцией, которая может генерировать «отпечаток пальца» любых данных, то есть мы можем использовать MD5 для сжатия сообщения или данных в дайджест.Да, количество данных становится меньше, что удобен для сравнения и проверки целостности и корректности данных. Поскольку практически невозможно, чтобы два разных файла имели один и тот же хэш MD5, любое невредоносное изменение файла приведет к изменению его хэша MD5. Таким образом, хеши MD5 часто используются для проверки целостности файлов, особенно для определения правильности файлов при передаче файлов, ошибок диска или в других ситуациях.
MD5
В Python мы можем использовать встроенный модуль hashlib для завершения реализации и использования MD5.
import hashlib
m = hashlib.md5()
# 假设文件内容
src = 'I like Python'
m.update(src.encode('utf-8'))
print(m.hexdigest())
Пример результата:
17008b7417701b0c233b999d20c13f1d
проверка документов
Предположим, есть два существующих файла, нам нужно проверить, совпадают ли эти два файла.
import hashlib
def out_md5(src):
# 简单封装
m = hashlib.md5()
m.update(src.encode('utf-8'))
return m.hexdigest()
with open('1.txt', 'r') as f:
src = f.read()
m1 = out_md5(src)
print(m1)
with open('2.txt', 'r') as f:
src = f.read()
m2 = out_md5(src)
print(m2)
if m1 == m2:
print(True)
else:
print(False)
Пример результата:
bb0c1b519a0a2b8e6c74703e44538c60
43cb091db43a710d85ce45fb202438cd
False