Проверка MD5 отпечатка данных и сравнение Python3

Python
Проверка MD5 отпечатка данных и сравнение Python3

Алгоритм дайджеста сообщения 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