поиск и шифрованние данных

zah

Guest
поиск и шифрованние данных

Есть необходимость хранить зашифрованные данные в базе, возникают ряд вопросов какой метод шифрования применить что бы выполнялись следующие условия:
1 возможность дешифровать зашифрованные данные
2 возможность поиска по шифрованным данным.

Пример: зашифровал Я хитро слово "php" получил "уйцукуйкйукеку" а теперь мне нужно сделать селект
поля где есть буква "p" но при шефровании с тем же ключем в ряде методов я получаю совсем другие символы нежели "уйцукуйкйукеку"

ТАК КАКОЙ МЕТОД ПРИМЕНИТЬ ???? не хочется перебирать все =(
 

Screjet

Новичок
Шифруешь любым методом,
когда нужно найти, шифруешь искомое и ищещ.

А если ключ должен быть в кармане, юзаем openssl.

зы. Зря запостил в форуме для продвинутых.
 

Tsatur

Guest
Я так понял, что ему такой метод не пойдет... phpclub.ru у него зашифруется как "sfdgdfgdf", то просто php как "tryyu", т.е. символы совпадать не будут, значит он, когда будет искать php ничего не найдет...
 

IntenT

SkyDiver
предполагая, что используется мускул
http://dev.mysql.com/doc/mysql/ru/Miscellaneous_functions.html
искать
ENCODE(str,pass_str)
DECODE(crypt_str,pass_str)

AES_ENCRYPT(string,key_string)
AES_DECRYPT(string,key_string)

DES_ENCRYPT(string_to_encrypt [, (key_number | key_string) ] )
DES_DECRYPT(string_to_decrypt [, key_string])

Вариантов как видно куча
 

Screjet

Новичок
Originally posted by Tsatur
Я так понял, что ему такой метод не пойдет... phpclub.ru у него зашифруется как "sfdgdfgdf", то просто php как "tryyu", т.е. символы совпадать не будут, значит он, когда будет искать php ничего не найдет...
Верно, сори за невнимательность.

Думаю, нужно разделять искомое на четкие группы, иначе даже с самым примитовным шифрованием (xor) придется сделать число запросов равное числу смещения (знаков) ключа.
 

ForJest

- свежая кровь
Есть необходимость хранить зашифрованные данные в базе, возникают ряд вопросов какой метод шифрования применить что бы выполнялись следующие условия:
А какие причины привели к этой необходимости?
 

zah

Guest
желание клиента конечно же.... но я нашел простой метод для этого просто поленился посидеть чуть дольше...


$key = "2222";
$input = "Let us meet at 9 o'clock at the secret place.";
$input2 = "Let";
$encrypted_data = mcrypt_cfb (MCRYPT_DES, $key, $input, MCRYPT_ENCRYPT);
$encrypted_data2 = mcrypt_cfb (MCRYPT_DES, $key, $input2, MCRYPT_ENCRYPT);
echo $encrypted_data,"<br>";
echo $encrypted_data2;

Как видно получаем то что нужно и это замечательно.
 

Falc

Новичок
zah
Так как при поиске по зашифрованому полю врядли удастся использовать индексы и придется сканить всю базу. То подозреваю, что, если перед поиском расшифровывать данные, то скорость снизится не очень значительно. Поэтому думаю что стоит попробоать данный вариант, главное чтобы метод дешивровки был быстрым.

-~{}~ 12.08.04 16:02:

zah
Попробуй за одно:
$input2 = "et";
 

zah

Guest
Ага вот тут то я и промохнулся .... вопрос остается открытым
когда я шифрую et получаю совсем другой результат шифрования =( что же делать ?????
 

$skip

Guest
Могу дать алгоритм IDEA реализовал под PHP, этот алгоритм в PGP. Но чтобы хранить ключи клиента в сохранности придется юзать ssl. иначе весь смысл пропадает.
 

zah

Guest
само собой все будет по ссл и если возможно заполучить этот алгоритм то я был бы при много благодарен.
 

$skip

Guest
Сразу дам все самые крепкие алгоритмы. Все исходники лежат
здесь Если прочесть книгу целиком получите огромное удовольствие. Например наверное мало из Вас кто знает что ssl расшифровывается почти без проблем если начать снифить с самого начала. С собой IDEA на PHP нет, могу выложить завтра. Все написано на С и перебрать под PHP не очень сложно.
 

telesar

Новичок
Прошу прощения, что поднимаю мертвеца, но заинтриговала фраза:

Автор оригинала: $skip
Например наверное мало из Вас кто знает что ssl расшифровывается почти без проблем если начать снифить с самого начала
Никто не отписался, наверное все об этом знают, кроме меня...
 
Сверху