2015-07-21 4 views
-2

Мне нужно зашифровать и дешифровать URL-адреса в моем приложении.Лучший алгоритм шифрования и дешифрования для url

Шифрование является обязательным для обхода цензуры. В настоящее время приложение использует RC4, но в настоящее время оно более нежизнеспособно и, надеюсь, есть лучшая альтернатива.

Хороший алгоритм должен иметь следующие характеристики:

  1. хэш должен быть как можно более коротким Некоторые веб-фильтры будут блокировать URL-адреса, которые больше, чем 75 символов. Хорошим вариантом будет хэш короче, чем у RC4.
  2. Алгоритм должен быть эффективным как с точки зрения использования памяти, так и с помощью ЦП.
  3. Алгоритм должен быть более сильным, чем RC4.
  4. PHP & Должна быть доступна реализация алгоритма JS.
+0

Непонятно, что вы на самом деле пытаетесь сделать - возможно, вы могли бы начать с объяснения своей предпосылки? Хэш также не является шифром. –

+0

Хеш: SHA-3, шифр: AES. – Qiu

ответ

0

Вы упомянули RC4, который является потоковым шифром. Как вы сказали, это небезопасно. Кажется странным использовать потоковый шифр для URL-адресов, но если это так, как вы хотите, я бы предложил вам посмотреть на Salsa20. Google использует его, и на нем нет никаких патентов.

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

Что касается сохранения размера вниз, то оба вышеизложенного довольно компактны. Например, AES потребует 16 байтовых блоков и выровняется до четного кратного 16. Так что, если вам нужно оставаться под 75 символами (и предполагая 1 символ на каждый байт в вашей кодировке), вы должны остаться под 64 символами, чтобы сохранить AES от создания другого блока, который сделал бы даже 80 байтов.

Я предлагаю сначала сжать URL-адрес, а затем зашифровать. Вы должны быть в состоянии сжать много данных в 72 байта таким образом. Просто не забудьте сжать, а затем зашифровать. Если вы сначала зашифруете, шифрованный текст довольно непроницаем для сжатия.

0

Мне нужно зашифровать и расшифровать URL-адреса в своем приложении.

Могу я предложить an alternative solution to URL parameter encryption?

Шифрование является обязательным для обхода цензуры. В настоящее время приложение использует RC4, но в настоящее время оно более нежизнеспособно и, надеюсь, есть лучшая альтернатива.

Использование HTTPS. Avoid client-side Javascript cryptography in the browser. С помощью нового центра сертификации Let's Encrypt HTTPS является бесплатным и более простым, чем когда-либо.

Смежные вопросы