Хэш-алгоритм (хэш) шифрования и дешифрования
Хэш-алгоритм (хэш) шифрования и дешифрования

один、Хэш-алгоритм (хэш) шифрования и дешифрованияпредставлять

Язык кода:javascript
копировать
Хэш, называемый по-английски hash。
Хэш-функция (хеш функция) может быть Данные произвольной длины (байтовая строка) рассчитываются для данных результата фиксированной длины.
мы привыкли Чтобы рассчитать Данные называются исходные данные, Данные рассчитанного результата называются Хэш значение) или Дайджесты.
Существует несколько хеш-функций, соответствующих разным алгоритмам: Общий MD5, SHA1, SHA224, SHA256, SHA384, SHA512

Характеристики вычисления хеша:
Такой же исходные данные, использовать Такой же Хэшалгоритм, рассчитанное значение хеш-функции Должно быть то же самое
несмотря на исходные данные какой большой,Такой же Хэшалгоритм,рассчитанное значение хеш-функции长度 Они все одинаковой длины.

алгоритм	Длина результата расчета
MD5	16 байт
SHA1	20 байт
SHA224	28 байт
SHA256	32 байта
SHA384	48 байт
SHA512	64 байта

алгоритм Необратимый.

Другими словами, он не может пройти Хэш-значение В свою очередь, вычислите исходные данные。 Таким образом, хеширование отличается от шифрования и дешифрования, о которых мы часто говорим.

Разные исходные данные Используйте тот же Хашалгоритм,может привести Такой же Хэш-значение,Это называется частотой столкновений(collision rate)

Различный Хэшалгоритм,Чем больше рассчитанная длина результата,Чем ниже частота столкновений,Обычно расчет занимает больше времени.

Даже если это MD5 алгоритм, Частота столкновений также Очень маленький, почти ничтожный. Примерно 1,47*10 в отрицательной 29 степени

2. Метод шифрования

Язык кода:javascript
копировать
'md5', 'sha1', 'sha224', 'sha256', 'sha384', 'sha512',
                      'blake2b', 'blake2s',
                      'sha3_224', 'sha3_256', 'sha3_384', 'sha3_512',
                      'shake_128', 'shake_256'

шифрование md5

Язык кода:javascript
копировать
# coding=utf-8
"""
    @Project :pachong-master 
    @File    :hash_test.py
    @Author  :gaojs
    @Date    :2022/7/11 21:15
    @Blogs   : https://www.gaojs.com.cn
"""
import hashlib


# Используйте md5 алгоритм
h = hashlib.md5()

# sha 256алгоритм
# m = hashlib.sha256()

# Чтобы Метаданные для защиты должны быть в строковом формате.
# Строковые объекты необходимо закодировать и преобразовать в объекты байтовой строки.
h.update("Hi, Моя судьба зависит от меня.".encode())

# Сгенерировать объект байтов, соответствующий Хэш-значению
resultBytes = h.digest()
resultHex = h.hexdigest()
print(resultHex)

Шифрование SHA 256

Язык кода:javascript
копировать
# coding=utf-8
"""
    @Project :pachong-master 
    @File    :hash_test.py
    @Author  :gaojs
    @Date    :2022/7/11 21:15
    @Blogs   : https://www.gaojs.com.cn
"""
import hashlib


# Используйте md5 алгоритм
# h = hashlib.md5()
# md5 Вмешательство шифрования следующее: 8b365af9b1089f502e7bc60ac9c81ed2
# sha 256алгоритм
h = hashlib.sha256()
# Чтобы Метаданные для защиты должны быть в строковом формате.
# Строковые объекты необходимо закодировать и преобразовать в объекты байтовой строки.
h.update("Hi, Моя судьба зависит от меня.".encode())

# Сгенерировать объект байтов, соответствующий Хэш-значению
resultBytes = h.digest()
resultHex = h.hexdigest()
# Шифрование SHA 256 результатов выглядят следующим образом:
print(resultHex)

Шифрование SHA 512

Язык кода:javascript
копировать
# coding=utf-8
"""
    @Project :pachong-master 
    @File    :hash_test.py
    @Author  :gaojs
    @Date    :2022/7/11 21:15
    @Blogs   : https://www.gaojs.com.cn
"""
import hashlib


# Используйте md5 алгоритм
# h = hashlib.md5()
# md5 Вмешательство шифрования следующее: 8b365af9b1089f502e7bc60ac9c81ed2
# sha 512алгоритм
h = hashlib.sha512()
# Чтобы Метаданные для защиты должны быть в строковом формате.
# Строковые объекты необходимо закодировать и преобразовать в объекты байтовой строки.
h.update("Hi, Моя судьба зависит от меня.".encode())

# Сгенерировать объект байтов, соответствующий Хэш-значению
resultBytes = h.digest()
resultHex = h.hexdigest()
# Шифрование SHA 512 Результаты следующие:
# c945f94c933078a77812afa75cd693ee17e581b9920696063cf50983fcb1a56d577565c3bcda05badc6c4ffdf64f1abbdd6dd0897c3e1620950b7ec31c96fe6c
print(resultHex)

Та же рутина

3. Как расшифровать алгоритм хеширования в Python

Язык кода:javascript
копировать
Шифрование и дешифрованиеалгоритм,даисходные данные Выполните операции для создания зашифрованных данных и обратный процесс для обратного расчета зашифрованных данных. исходные данные。

Шифрование и дешифрованиеалгоритм и hashалгоритм Отличия заключаются в следующем:

Шифрование и дешифрованиеалгоритм является обратимым,хеш-алгоритм необратим.

хеш-алгоритм может выдавать меньшее Хэш-значение для больших данных,ишифрованиеалгоритмисходные данныеочень большой,шифрование后的数据也会очень большой

Шифрование и дешифрованиеалгоритм можно разделить на Симметричное шифрование а также Нет Симметричное шифрование

Симметричное шифрование обратитесь к шифрованиеи Расшифровать 使用Такой же ключ 。

и Нет Симметричное шифрование обратитесь к шифрованиеи Расшифровать использовать разные ключ,обычноодинверноключ,назови это открытым ключом(用来шифрование)изакрытый ключ(用来Расшифровать)。

относительно распространен Симметричное шифрованиеалгоритмиметь: AES, RC4, DES, 3DES, IDEA ждать.

Среди них тот, у которого более высокий уровень безопасности. AES。

Самый известный Нет Симметричное шифрование系统 то есть RSA (Rivest–Shamir–Adleman) 。

hash_jiemi.py

Язык кода:javascript
копировать
# coding=utf-8
"""
    @Project :pachong-master 
    @File    :hash_jiemi.py
    @Author  :gaojs
    @Date    :2022/7/11 21:34
    @Blogs   : https://www.gaojs.com.cn
"""
# В настоящее время библиотеки шифрования и дешифрования Python с относительно хорошей репутацией включают в себя cryptography и PyNaCl
from cryptography.fernet import Fernet


def jiami():
    """
    Процесс шифрования и дешифрования
    :return: 
    """
    # Вот использование Эта библиотека выполняет AES Примеры операций шифрования и дешифрования
    # сгенерировать секретный ключ
    key = Fernet.generate_key()
    fin = Fernet(key)

    strings = 'gaojs, Моя судьба зависит от меня!»
    # Исходная информация должна быть строкой
    stringsBytes = strings.encode()
    # Генерировать зашифрованные байты
    token_result = fin.encrypt(stringsBytes)
    print(token_result)
    # Расшифровка, возвращаемое значение представляет собой объект байтовой строки.
    result = fin.decrypt(token_result)
    print(result.decode())


if __name__ == '__main__':
    jiami()
boy illustration
Неразрушающее увеличение изображений одним щелчком мыши, чтобы сделать их более четкими артефактами искусственного интеллекта, включая руководства по установке и использованию.
boy illustration
Копикодер: этот инструмент отлично работает с Cursor, Bolt и V0! Предоставьте более качественные подсказки для разработки интерфейса (создание навигационного веб-сайта с использованием искусственного интеллекта).
boy illustration
Новый бесплатный RooCline превосходит Cline v3.1? ! Быстрее, умнее и лучше вилка Cline! (Независимое программирование AI, порог 0)
boy illustration
Разработав более 10 проектов с помощью Cursor, я собрал 10 примеров и 60 подсказок.
boy illustration
Я потратил 72 часа на изучение курсорных агентов, и вот неоспоримые факты, которыми я должен поделиться!
boy illustration
Идеальная интеграция Cursor и DeepSeek API
boy illustration
DeepSeek V3 снижает затраты на обучение больших моделей
boy illustration
Артефакт, увеличивающий количество очков: на основе улучшения характеристик препятствия малым целям Yolov8 (SEAM, MultiSEAM).
boy illustration
DeepSeek V3 раскручивался уже три дня. Сегодня я попробовал самопровозглашенную модель «ChatGPT».
boy illustration
Open Devin — инженер-программист искусственного интеллекта с открытым исходным кодом, который меньше программирует и больше создает.
boy illustration
Эксклюзивное оригинальное улучшение YOLOv8: собственная разработка SPPF | SPPF сочетается с воспринимаемой большой сверткой ядра UniRepLK, а свертка с большим ядром + без расширения улучшает восприимчивое поле
boy illustration
Популярное и подробное объяснение DeepSeek-V3: от его появления до преимуществ и сравнения с GPT-4o.
boy illustration
9 основных словесных инструкций по доработке академических работ с помощью ChatGPT, эффективных и практичных, которые стоит собрать
boy illustration
Вызовите deepseek в vscode для реализации программирования с помощью искусственного интеллекта.
boy illustration
Познакомьтесь с принципами сверточных нейронных сетей (CNN) в одной статье (суперподробно)
boy illustration
50,3 тыс. звезд! Immich: автономное решение для резервного копирования фотографий и видео, которое экономит деньги и избавляет от беспокойства.
boy illustration
Cloud Native|Практика: установка Dashbaord для K8s, графика неплохая
boy illustration
Краткий обзор статьи — использование синтетических данных при обучении больших моделей и оптимизации производительности
boy illustration
MiniPerplx: новая поисковая система искусственного интеллекта с открытым исходным кодом, спонсируемая xAI и Vercel.
boy illustration
Конструкция сервиса Synology Drive сочетает проникновение в интрасеть и синхронизацию папок заметок Obsidian в облаке.
boy illustration
Центр конфигурации————Накос
boy illustration
Начинаем с нуля при разработке в облаке Copilot: начать разработку с минимальным использованием кода стало проще
boy illustration
[Серия Docker] Docker создает мультиплатформенные образы: практика архитектуры Arm64
boy illustration
Обновление новых возможностей coze | Я использовал coze для создания апплета помощника по исправлению домашних заданий по математике
boy illustration
Советы по развертыванию Nginx: практическое создание статических веб-сайтов на облачных серверах
boy illustration
Feiniu fnos использует Docker для развертывания личного блокнота Notepad
boy illustration
Сверточная нейронная сеть VGG реализует классификацию изображений Cifar10 — практический опыт Pytorch
boy illustration
Начало работы с EdgeonePages — новым недорогим решением для хостинга веб-сайтов
boy illustration
[Зона легкого облачного игрового сервера] Управление игровыми архивами
boy illustration
Развертывание SpringCloud-проекта на базе Docker и Docker-Compose