Python for Hacking 3 Часть - Основы Криптографии

Python for Hacking 3 Часть - Основы Криптографии

moderator E7

Всем привет ! В этой части "Python for Hacking" мы поговорим об одной из базовых тем python-разработчика , которую должен знать каждый это шифрования.



Что такое криптографии ?

Криптография защищает данные и переписку с использованием кодов. Таким образом, его можно интерпретировать и доступны только определенным лицам, которым предназначена информация.

Механизмы шифрования знаний вытекают свои корни от математических принципов в криптографии. И серия формул на основе правил в качестве алгоритмов преобразования сообщений таким образом, что делает его невозможным расшифровать их.

Эти алгоритмы генерируют криптографические ключи, цифровая подпись, аутентификация по защите данных, просмотр Интернета и конфиденциальные транзакции, такие как кредитные карты и транзакции дебетовых карт.


Хеширование

Если вам нужно защитить хэши или алгоритм дайджеста сообщений, то для этого прекрасно подойдет модуль стандартной библиотеки Python hashlib. Он включает в себя безопасные алгоритмы хеширования FIPS, такие как SHA1, SHA224, SHA256, SHA384, а также SHA512 и MD5. Python также поддерживает функции хеширования adler32 и crc32, но они содержатся в модуле zlib. Одно из самых популярны применений хеширования это хранение хеша пароля, вместо самого пароля. Конечно, хеш должен быть хорошим, в противном случае он может быть расшифрован.

Другой популярный случай, в котором применяется хеширование – это хеширование файла, с последующей отправкой файла и его хеша по отдельности. Получатель файла может запустить хеш в файле, чтобы убедиться в том, что файл соответствует отправленному хешу. Если это так, значит никто не менял файл, когда он был отправлен. Давайте попробуем создать хеш md5. Но оказывается, чтобы использовать хеш md5, нужно передать его строке байта, вместо обычной. Так что мы попробовали сделать это, после чего вызвали метод дайджеста, чтобы получить наш хеш. Если вы претпочитаете хешированный дайджест, мы можем сделать и это:


import hashlib
hashlib.md5.update(b'Python rocks!')
result = hashlib.md5.digest()
 
print(result)
# b'\x14\x82\xec\x1b#d\xf6N}\x16*+[\x16\xf4w'

Давайте уделим время на то, чтобы разобраться с увиденным. Сначала мы импортировали модуль hashlib и создали экземпляр объекта md5 HASH. Далее, мы вписали небольшой текст в объект хеша и получили трассировку.


print( md5.hexdigest() )
# '1482ec1b2364f64e7d162a2b5b16f477'

На самом деле существует метод быстрого создания хеша, мы рассмотрим его, когда создадим наш хеш sha512:


import hashlib
sha = hashlib.sha1(b'Hello Python').hexdigest()
 
print(sha) # '422fbfbc67fe17c86642c5eaaa48f8b670cbed1b'

Как вы видите, мы создали наш экземпляр хеша и вызвали его метод дайджеста одновременно. Далее, мы выводим наш хеш, чтобы на него посмотреть. Лично я использую хеш sha1, так как его хеш достаточно короткий и отлично ложится в страницу. Но в то же время он и не очень безопасный, так что вы вольны выбирать то, что вам удобно.


Я показал основной прицип работы , остальное вы можете узнать по следующим ссылкам на доки модулей.

Модули для картографии и шифрования - cryptography , RSA , PyCrypto, hashlib


С любовью от E7TEAM ;)



Report Page