В мире кибербезопасности и поиска угроз вычисление контрольных сумм является обычной практикой для обеспечения целостности данных и проверки подлинности файлов.
Контрольные суммы – это уникальные значения, сгенерированные из содержимого файла, и они действуют как цифровые отпечатки пальцев.
В Python есть удобный модуль hashlib, который позволяет вычислять различные алгоритмы контрольных сумм, такие как MD5, SHA1 и SHA256.
В этой статье мы расскажем вам о процессе вычисления контрольных сумм с помощью Python и модуля hashlib.
Шаг 1: Импортируйте необходимый модуль
Чтобы начать работу, нам нужно импортировать модуль hashlib, который предоставляет необходимые функции для вычисления контрольных сумм.
import hashlib
Шаг 2: Определение функции
Далее мы определяем функцию compute_checksums, которая принимает в качестве параметра file_path.
Эта функция будет вычислять контрольные суммы MD5, SHA1 и SHA256 для заданного файла.
def compute_checksums(file_path):
hash_md5 = hashlib.md5()
hash_sha1 = hashlib.sha1()
hash_sha256 = hashlib.sha256()
Шаг 3: Открываем файл
Теперь мы открываем файл, указанный в file_path, с помощью оператора with, чтобы обеспечить правильную обработку и закрытие файла.
with open(file_path, "rb") as f:
Шаг 4. Чтение и обновление контрольных сумм
Мы читаем файл кусками по 4096 байт и обновляем контрольные суммы для каждого куска.
Такой подход эффективен для работы с большими файлами.
for chunk in iter(lambda: f.read(4096), b""):
hash_md5.update(chunk)
hash_sha1.update(chunk)
hash_sha256.update(chunk)
Шаг 5: Возврат контрольных сумм
После обработки всего файла мы возвращаем вычисленные контрольные суммы в виде словаря, содержащего значения MD5, SHA1 и SHA256.
return {"md5": hash_md5.hexdigest(), "sha1": hash_sha1.hexdigest(), "sha256": hash_sha256.hexdigest()}
Полный код: Здесь представлен полный код, который вы можете скопировать и использовать в своей работе:
import hashlib
def compute_checksums(file_path):
hash_md5 = hashlib.md5()
hash_sha1 = hashlib.sha1()
hash_sha256 = hashlib.sha256()
with open(file_path, "rb") as f:
for chunk in iter(lambda: f.read(4096), b""):
hash_md5.update(chunk)
hash_sha1.update(chunk)
hash_sha256.update(chunk)
return {"md5": hash_md5.hexdigest(), "sha1": hash_sha1.hexdigest(), "sha256": hash_sha256.hexdigest()}
Используя этот код, вы сможете вычислить контрольные суммы MD5, SHA1 и SHA256 для любого указанного вами файла.
Это может быть очень полезно в различных сценариях кибербезопасности и поиска угроз для обеспечения целостности и подлинности файлов.
см. также:
- 🐍 Как получить доступ к переменным среды в Python
- 🐍 Python скрипт для отправки электронного письма через SMTP-сервер
- 🐍 Возможности использования Poetry в Python
- 🐍 Получение всех IP-адресов из подсети CIDR с помощью Python3
- 🐍 Инструкция и скрипт на Python по брутфорсу FTP