2012-03-21 2 views
1

Возможно ли, преобразовать зашифрованную строку (аналогично md5), не теряя возможности ее декодирования обратно?PHP: Minify crypted value

0TJyj0wX4ZCrsYlANG8QgwBHnGzGU7kr1BEkolr6tY0OdowpA== 

Better: 73a4842f36b4n237m64as23 
+0

По своей природе хэш в одном направлении. Вы ищете преобразование (или потенциально шифрование.) – Corbin

+0

Cryptception ...? –

+0

@Corbin Я редактировал свой пост. Спасибо. – mate64

ответ

2

Хэш, по определению, в одну сторону. Вы не сможете хэшировать свою зашифрованную строку, а затем «un-hash», чтобы снова получить зашифрованную строку.

Вы можете, однако, попытка «Минимизировать» в зашифрованную строку по:

  • Использование алгоритма сжатия без потерь - хотя вы вряд ли получите много с этим подходом, поскольку зашифрованные данные не сжимать ну и для некоторых наборов входных множеств can actually increase the storage requirements.
  • Сжатие данных перед его зашифровкой. В зависимости от размера ввода можно уменьшить размер на несколько процентов по одному только шифрованию (в зависимости от алгоритмов), но обычно не более чем на 5-10% (опять же, this answer указывает на это)
  • Re- кодирование данных с более высокой «базы» (то есть ваша строка Base64, вы можете переключиться на Base85) - но это только приводит к 7% savings
+1

Сжатие без потерь не будет работать слишком хорошо на хэшированных или зашифрованных данных, данные будут выглядеть как случайные данные для алгоритма сжатия. Это хуже, чем пытаться закрепить JPEG или MP3-файл. –

+0

@owlstead: +1 Правда, я должен был заметить, что в ответ ... редактируйте время! –

+0

Потому что msec не сообщает, где ему это нужно -> Он мог кодировать его двоичным –

0

вы можете использовать RSA для шифрования данных вы см this, это говорит о том, чтобы склеп в PHP

+0

RSA-шифрование, безусловно, не «минимизирует» его ... –

0

Лучший способ шифрования в PHP является использование расширения Mcrypt. http://www.php.net/manual/en/book.mcrypt.php

Пример для encryption и decryption.

Я также рекомендую base64 кодировать результат шифрования.

Мини-код не имеет смысла для небольших данных (например, паролей).

+0

Я не думаю, что общие примеры шифрования/дешифрования полезны. Я бы добавил +1, если бы вы только что отправили последнее предложение. –