Поиск MySQL с шифрованием AES - PullRequest
       3

Поиск MySQL с шифрованием AES

0 голосов
/ 28 октября 2010

Мне просто любопытно, если кто-то может указать мне правильное направление поиска MySQL с шифрованием AES.

Есть несколько вещей, которые необходимо учитывать.Если я возьму ключевое слово и зашифрую его перед поиском, я сравниваю шифрование с шифрованием, и даже если одна буква заглавная, а другая не заглавная в MySQL, она не будет найдена с помощью ключевого слова LIKE% $%% * 1003.*

Другим фактором является мой процесс шифрования.$ variable -> очистить лишний интервал -> strip_slashes (и т. д.) -> преобразовать в AES -> преобразовать в Base_64 перед импортом в БД.

Причиной дополнительной кодировки стали проблемы с переносом абстрактных символов в MySQL.и это был безупречный импорт, используя это.Поэтому использование встроенного MySQL AES не было для меня лучшим вариантом.

Поэтому я предполагаю, что лучший способ сделать это - что-то вроде этого.

$ variable ->[ключевое слово] Результаты sql расшифровывают и ищут строку?но это кажется излишним ...

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

Приветствия!и заранее спасибо!

Ответы [ 3 ]

3 голосов
/ 31 августа 2012

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

Допустим, мы хотим зашифровать эти предложения:

  1. Myхорошая машина
  2. я люблю mysql
  3. меньшинство

Вы можете хранить их в зашифрованном виде, допустим ***или, вы можете хранить зашифрованное значение и включать первые 3 символа оригинала: мой ***, I l ***, мин ***

В этом случае вы можете использовать mysql для поиска первых 3 символов того, что вы ищете, и выполнить полную расшифровкуна остальных данных.

Конечно, это работает только для поисков, которые «начинаются» с определенной строки.Эти 3 символа являются случайным числом и должны определяться на основе чувствительности, требований к производительности и размера набора данных.

1 голос
/ 22 января 2014

Вот пример, аналогичный тому, что предложил Эндрю, если это поможет.

$ sql_query = "SELECT *, AES_DECRYPT (text_in_blob, 'salt)) AS decrypted_text ОТ my_table WHERE CONVERT (AES_DECRYPT (text_in_blob,' salt)) USING latin1) LIKE '% keyword%' ';

0 голосов
/ 28 октября 2010

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

...