Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Поиск подстроки в зашифрованном текстовом BLOB поле / 20 сообщений из 20, страница 1 из 1
11.05.2016, 05:16
    #39232944
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
Добрый день.
Код: sql
1.
SELECT AES_DECRYPT(`namefield`,'key') FROM `mybase` WHERE `namefield` LIKE AES_ENCRYPT('Tекст','key')


Как я понял, поиск в blob осуществляется только с учетом регистра. Значит, LIKE с '% текст овый%' облом?
Если я ошибаюсь, подскажите как правильно написать запрос.
Спасибо.
...
Рейтинг: 0 / 0
11.05.2016, 05:24
    #39232945
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
Дело в том, что AES_ENCRYPT('Tекст','key') и AES_ENCRYPT('текст','key') дают разные результаты. Совсем разные. Так что если хотите искать без учёта регистра - создавайте ещё одно поле, в котором будет AES_DECRYPT(LOWER(`namefield`),'key'), и ищите по нему, приводя искомый текст к такому же регистру.
...
Рейтинг: 0 / 0
11.05.2016, 05:25
    #39232946
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
tanglirDECRYPTENCRYPT, конечно же
...
Рейтинг: 0 / 0
11.05.2016, 05:31
    #39232947
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
Понятно.tanglirсоздавайте ещё одно поле, тогда оно тоже должно быть зашифрованным? Допустим. А если мне нужен LIKE с '%%' как должен выглядеть запрос?
...
Рейтинг: 0 / 0
11.05.2016, 06:08
    #39232954
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
возможно, я не верно сформулировал вопрос.
Возможен ли поиск подстроки (части слова) в зашифрованном поле типа LOWER(blob) с использованием LIKE '%%'?
Вероятно, нет..
...
Рейтинг: 0 / 0
11.05.2016, 06:54
    #39232960
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
AlexSes,

нет
иначе какой смысл его шифровать?..
...
Рейтинг: 0 / 0
11.05.2016, 10:08
    #39233065
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
Ясно, спасибо!
...
Рейтинг: 0 / 0
11.05.2016, 10:21
    #39233081
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
Код: sql
1.
SELECT AES_DECRYPT(`namefield`,'key') FROM `mybase` WHERE AES_DECRYPT(`namefield`,'key') LIKE '%Tекст%' COLLATE регистронезависимый_коллейт

Код: sql
1.
SELECT AES_DECRYPT(`namefield`,'key') FROM `mybase` WHERE UPPER(AES_DECRYPT(`namefield`,'key')) LIKE '%TЕКСТ%'

Но, правда, таблицу будет читать всю и всю расшифровывать. Т.е. это дорогой запрос.

То ли я не понял вопроса...
...
Рейтинг: 0 / 0
11.05.2016, 11:22
    #39233140
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
miksoftНо, правда, таблицу будет читать всю и всю расшифровывать. Т.е. это дорогой запрос.вот я и спросил, какой тогда смысл в этом шифровании.
...
Рейтинг: 0 / 0
11.05.2016, 11:55
    #39233173
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
какой тогда смысл в этом шифрованиив смысле, "смысл"?
Я думал шифрование нужно для того, чтобы тот, кто стащил БД не мог прочесть её. Или вы про что-то другое?
...
Рейтинг: 0 / 0
11.05.2016, 11:58
    #39233177
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
AlexSes,

ну тогда делайте как миксофт показал и готовьтесь на вопросы типа "а чего оно по полчаса одно слово ищет?" отвечать "безопасность прежде всего!"

ЗЫ. если кто-то стащил бд, то скорее всего пить боржоми уже поздно...
...
Рейтинг: 0 / 0
11.05.2016, 12:07
    #39233187
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
да, я понял, что запрос может выполняться долго.
Спасибо всем за участие!
...
Рейтинг: 0 / 0
11.05.2016, 12:18
    #39233204
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
ага, запрос построен и работает без UPPER и COLLATE. Еще раз спасибо за наводку!
...
Рейтинг: 0 / 0
11.05.2016, 12:19
    #39233207
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
AlexSesи работает без UPPER и COLLATEесли вы искомый текст вводите в том же регистре, то конечно ни то, ни другое не требуется.
...
Рейтинг: 0 / 0
11.05.2016, 12:23
    #39233211
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
AlexSesработает без UPPER и COLLATEВозможно, коллейшн всей базы регистронезависимый.
...
Рейтинг: 0 / 0
11.05.2016, 12:56
    #39233246
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
tanglirAlexSesи работает без UPPER и COLLATEесли вы искомый текст вводите в том же регистре, то конечно ни то, ни другое не требуется.нет, без разницы. Всё находит.
...
Рейтинг: 0 / 0
11.05.2016, 12:59
    #39233253
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
miksoftВозможно, коллейшн всей базы регистронезависимый. Да, collate задан для всей базы
...
Рейтинг: 0 / 0
11.05.2016, 13:00
    #39233258
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
AlexSesmiksoftВозможно, коллейшн всей базы регистронезависимый. Да, collate задан для всей базыПонятно, что задан. Он не может быть не задан. Вопрос в том - какой?
...
Рейтинг: 0 / 0
11.05.2016, 13:05
    #39233262
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
utf8_general_ci
...
Рейтинг: 0 / 0
12.05.2016, 04:10
    #39233899
AlexSes
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск подстроки в зашифрованном текстовом BLOB поле
а вот, фик! Без collate только с учетом регистра. Вчера уже поздно было, проглядел.
Код: sql
1.
SELECT CAST(AES_DECRYPT(`namefield`,'key') AS CHAR)  FROM `mybase` WHERE AES_DECRYPT(`namefield`,'key') LIKE '%Tекст%' COLLATE utf8_general_ci

так, вроде, правильно.
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Поиск подстроки в зашифрованном текстовом BLOB поле / 20 сообщений из 20, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]