Шифрование с использованием SHA1 - PullRequest
0 голосов
/ 19 января 2012

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

Поэтому я решил использовать HMAC SHA1.

$pad=hash_hmac("sha1","The quick brown....","mykey");

Это то, что я узнал после некоторых исследований в Интернете.

Насколько сложно расшифровать его, если кто-то не знает ключ?Кроме того, есть ли альтернативы этому?

ОБНОВЛЕНИЕ - спасибо за все ответы.Проблема решена.

Ответы [ 5 ]

5 голосов
/ 19 января 2012

Невозможно расшифровать его, даже если вы знаете ключ.HMAC SHA1 - это алгоритм хеширования с ключом, а не шифрование.

Хеш - это однонаправленная криптографическая функция, которая всегда генерирует значение одинаковой длины (я думаю, что SHA1 составляет 128 бит) независимо от длинывход.Смысл хэша в том, что, учитывая выходное значение, в вычислительном отношении невозможно найти входное значение для получения этого вывода.Хэш с ключами используется для предотвращения атак радужных таблиц.Даже если вы знаете ключ, вы не можете отменить процесс хеширования.

Для шифрования вы хотите взглянуть на AES.

1 голос
/ 19 января 2012

Как сказал Эндрю SHA1 - это алгоритм хеширования, который нельзя использовать для шифрования (поскольку вы не можете вернуть исходное значение). дайджест , который он производит, может использоваться для проверки целостности данных.

HMAC - это конструкция над алгоритмом хеширования, которая принимает ключ. Однако он не предназначен для шифрования (опять же, его нельзя расшифровать), но он позволяет подписывать данные, то есть с тем же ключом, который вы сможете гарантировать, что данные не были подделаны это перевод.

Для шифрования вы должны использовать AES или, если применимо к вашему приложению, HTTPS (который будет иметь дело с большим количеством проблем, чем вы хотели бы знать; -)

1 голос
/ 19 января 2012

SHA1 - однонаправленная хеш-функция, по определению она никому не расшифровывается.Вопрос возникает, если у вас есть открытый текст T, который хэширует к H. Насколько сложно найти другой T, который также хэширует к H.

Согласно Wikipedia, для SHA1 самая известная атака методом грубой силы потребует 2^ 51 восклицаний, чтобы найти простой текст, который соответствует.

Если вам нужно реальное шифрование, где вы можете повернуть процесс вспять, вы должны взглянуть на AES256.

См .: http://en.wikipedia.org/wiki/Cryptographic_hash_function

Для общего обсуждения по этому вопросу.

0 голосов
/ 19 января 2012

SHA-1, MD-5 - все односторонние алгоритмы хеширования. Они просто генерируют длинную строку. Каждая строка при использовании этих функций даст вам длинную строку, которую нельзя сохранить обратно.

Они далеки от шифрования.

Если вы ищете алгоритмы шифрования, выберите AES (расширенный стандарт шифрования), DES (стандарт шифрования данных).

0 голосов
/ 19 января 2012

Как я уже сказал, это хеш, поэтому не проблема шифрования / дешифрования.Если вы хотите реализовать простой алгоритм шифрования, я бы рекомендовал изучить шифрование XOR.Если ключ достаточно длинный (длиннее, чем сообщение), и ваша политика совместного использования ключей надежно защищена, это одноразовая панель;в противном случае он может быть поврежден с помощью статистического анализа.

...