Какой алгоритм шифрования будет лучше для передачи данных между Python и Php? - PullRequest
0 голосов
/ 22 февраля 2010

Я пишу клиент-серверную программу, на стороне сервера - Php, а на клиенте - Python, и мне нужно убедиться, что передача данных безопасна в обоих направлениях.

Итак, мой вопрос

Какой алгоритм шифрования будет наилучшим для передачи данных между Python и Php?

  • Я не мог использовать Https
  • Необходимо расшифровать / зашифровать с ключами на Python и Php
  • Мне не нужно иметь общий открытый ключ, ключ может быть установлен как в Python, так и в Php вручную
  • Поскольку я сам не знаю, как реализовать алгоритм, примеров на обоих языках было бы здорово.
  • Мои данные не такие серьёзные, как на банковском сайте, но я просто хочу зашифровать, чтобы быть защищённым от перехвата в сети

Я пытался проверить этот вопрос, но не смог найти подходящий ответ для меня

Совместимое шифрование между C # и PHP, ColdFusion, Ruby, Python

Заранее спасибо.

Ответы [ 3 ]

4 голосов
/ 22 февраля 2010

Не пытайтесь изобрести схему шифрования самостоятельно. Это очень сложно понять правильно (даже профессионалы не могут делать это правильно на регулярной основе). Набор протоколов безопасности SSL воплощает буквально десятилетия опыта исследований и внедрения, которые вы не сможете заново изобрести.

Для защиты личных данных через HTTP единственным правильным ответом является SSL. Все остальное делает себе медвежью услугу.

1 голос
/ 26 ноября 2015

Грег Хьюгилл прав и дает лучший совет. Я пытался изобрести свою собственную систему токенов, хотя и несколько успешную, но это не то, чем она могла бы быть. Поэтому я считаю, что SSL - лучший путь.

В PHP встроен openssl, и вы можете легко это использовать, то, чем я сейчас пользуюсь. Если вы позвоните своему хостинг-провайдеру и попросите его включить openssl, это не должно быть сложным, то есть если он еще не активирован.

Что касается Python, я не на 100% уверен в том, что доступно, но достаточно просто зашифровать его открытым ключом, поскольку ваш сервер расшифрует эти данные с помощью закрытого ключа.

Открытый и закрытый ключи могут быть сгенерированы с помощью командной строки. Вот ссылка на это:

http://travistidwell.com/blog/2013/02/15/a-better-library-for-javascript-asymmetrical-rsa-encryption/

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

1 голос
/ 22 февраля 2010

Ответ обычно «зависит». Если вам нужно только симметричное шифрование достаточного количества данных, вы, вероятно, захотите что-то вроде AES. Однако есть много способов, которыми вы могли бы использовать шифрование, которое в конечном итоге может оказаться небезопасным, поэтому использование https является хорошей идеей, поскольку его уровень немного выше, и в нем сложно ошибиться. Я не исследователь безопасности, но это просто общий совет, который мне дали в отношении безопасности.

В любом случае, есть библиотека Python , и вы, очевидно, можете использовать mcrypt для обработки шифрования / дешифрования в самом PHP.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...