Криптографические функции в Python
Шифрование данных-краеугольный камень программирования. Поэтому и в Python существуют специальные криптографические функции для шифрования, дешифрования и подписания данных.
Далее на примерах я покажу Вам как используются имеющиеся в Python функции из пакета hashlib.
Примеры запускаются в бесплатной версии интегрированной среды разработки PyСharm:
# импортируем библиотеку
import hashlib
# строки для тестирования
sample1 = """
раз два три четыре пять, вышел зайчик погулять
"""
sample2 = """
строка вторая для тестирования криптографических функций в питоне
"""
# выводит все алгоритмы, которые можно использовать
def all_algorithms():
# алгоритмы, которые обязательно будут присутствовать
guaranteed = ', '.join(hashlib.algorithms_guaranteed)
# алгоритмы которые доступны
available = ', '.join(hashlib.algorithms_available)
print(f'Гарантированные алгоритмы: \n {guaranteed} \n')
print(f'Доступные алгоритмы: \n {available} \n')
# хэш md5
def md5_hash():
# тестовая строка строка
str1 = sample1.encode('utf8')
# получаем функцию от библиотеки
md5 = hashlib.md5()
# генерируем хэш-строку
md5.update(str1)
# возвращаем результат в виде шестнадцатеричного представления
md5_hash_str = md5.hexdigest()
print(f'md5 хэш для строки sample_1: {md5_hash_str}\n')
def sha1_hash():
# тестовая строка строка
str1 = sample1.encode('utf8')
# получаем функцию от библиотеки
sha1 = hashlib.sha1()
# генерируем хэш-строку
sha1.update(str1)
# возвращаем результат в виде шестнадцатеричного представления
sha1_hash_str = sha1.hexdigest()
print(f'sha1 хэш для строки sample_1: {sha1_hash_str}\n')
# данная функция получает алгоритм из параметра и создает на его основе экземпляр алгоритма
def create_hash_by_algorithm_name(algo_name='sha256'):
# получаем ссылку на алгоритм по имени
algo = hashlib.new(algo_name)
algo.update(sample1.encode('utf8'))
print(f'{algo_name} хэш для строки sample_1: {algo.hexdigest()}\n')
if __name__ == '__main__':
all_algorithms()
md5_hash()
sha1_hash()
create_hash_by_algorithm_name()
Таким образом, вот такие развитые возможности представляет Python для работы с криптографическими функциями.
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.