Вопрос

Я изо всех сил пытаюсь полностью понять, как работает шифрование и кодируется, особенно с Python. Я просто пытаюсь снять основы и создать код в простейшей форме.

Я собираюсь перенести пользовательский изнасилован между двумя разными сайтами, но, очевидно, мне нужно, чтобы это было зашифровано с помощью закрытого ключа, поэтому веб -сайт 2 знает, что он пришел с веб -сайта1. Это кажется для меня код:http://docs.python.org/library/hashlib.html#module-hashlib, но у него нет очень хороших примеров (или, может быть, я не в том месте).

Проблема, которая у меня есть, заключается в том, чтобы полностью понять, как кодировать и декодировать.

Итак, скажем, общий личный ключ, который будет знать каждый веб -сайт:

shared_private_key = "ABCDEF"

И я хочу, чтобы веб -сайт1 перешел на веб -сайт2 имид:

userID = "123456"

Как бы веб -сайт1 зашифровал мой иид пользователя с закрытым ключом таким образом, что шифрование можно отправить через заголовки HTTP, а затем Decrypt Websit2 и возможность читать UserId, используя общий закрытый ключ?

Я прошу прощения за задание такого основного вопроса, но я не могу понять, как это должно быть сделано. Спасибо.

Это было полезно?

Решение

А hashlib Модуль обеспечивает функции хэширования. Несмотря на то, что есть какое -то отношение к шифрованию, после того, как вы будете хэш, вы не сможете вернуться, чтобы получить исходные данные из хэш -результата.

Вместо того, чтобы внедрить данные, вы можете использовать другой подход: создание уникальной подписи, используя хэш данных и некоторый секрет.

shared_private_key = "ABCDEF"

def create_signature(data):
    return hashlib.sha1(repr(data) + "," + shared_private_key).hexdigest()

def verify_signature(data, signature):
    return signature == create_signature(data)

Наконец, вы отправляете на веб -сайт 2 данные плюс подпись. Таким образом, вы можете быть (в основном) уверены, что ни один несанкционированный человек не подделал данные.

Другие советы

Вы хотите, чтобы библиотека шифрования не та, которая просто предоставляет хэш -алгоритмы. С Python's hashlib библиотека:

import hashlib
m = hashlib.sha1()
m.update("The quick brown fox jumps over the lazy dog")
print(m.hexdigest())

Возвращает: 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12

Учитывая это хэш, это чрезвычайно сложно Невозможно (в целом) восстановить исходное сообщение. Вы хотите, чтобы библиотека шифрования, которой нет стандартной библиотеки Python. Есть много Вопросы, связанные с библиотеками Python Cryptography на том, что это может быть полезно.

Стандартная библиотека Python не имеет алгоритмов шифрования. Пытаться Пикрипто, у него есть несколько примеров здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top