powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Этот удивительный AES_ENCRYPT
25 сообщений из 28, страница 1 из 2
Этот удивительный AES_ENCRYPT
    #39290068
AES ENCRYPT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В моей версии майскла

show global variables like 'version%'

version 10.1.14-MariaDBversion_comment MariaDB Serverversion_compile_machine x86_64version_compile_os Linuxversion_malloc_library system jemallocversion_ssl_library OpenSSL 1.0.1e-fips 11 Feb 2013

Код: sql
1.
SELECT (AES_ENCRYPT('asd','123')), AES_DECRYPT( AES_ENCRYPT('asd','123'),'123')


Выдает
� �z��L/3�3�l��u asd

1.1 Что с этим делать?
1.2 Как дальше жить?
2. Какой именно метод кодирования используется (в терминах mcrypt PHP)?
3. Хочется прийти к строке вида i9J7+wkVxEXjM9yypffAlw== или около того посредством AES
4. DES и ENCODE выдают такие же

[OK]

character_set_client utf8character_set_connection utf8character_set_database utf8character_set_filesystem binarycharacter_set_results utf8character_set_server utf8character_set_system utf8character_sets_dir /usr/share/mysql/charsets/

Спасибо.
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39290069
AES ENCRYPT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4. DES и ENCODE выдают такие же
как AES_ENCRYPT в примере - то есть кракозябры и вопросы.
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39290072
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AES ENCRYPT1.1 Что с этим делать?если вы не знаете что с этим делать, то вам это не нужно.


AES ENCRYPTКакой именно метод кодирования http://dev.mysql.com/doc/refman/5.7/en/encryption-functions.html#function_aes-encrypt AES_ENCRYPT() and AES_DECRYPT() implement encryption and decryption of data using the official AES (Advanced Encryption Standard) algorithm, previously known as “Rijndael.” The AES standard permits various key lengths. By default these functions implement AES with a 128-bit key length. As of MySQL 5.7.4, key lengths of 196 or 256 bits can be used, as described later.Ищите аналогичный фрагмент в доке по MariaDB.


AES ENCRYPTХочется прийти к строке вида i9J7+wkVxEXjM9yypffAlw== TO_BASE64() / FROM_BASE64()
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39290214
AES ENCRYPT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoft,

А с кодировкой то как быть?
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39290226
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AES ENCRYPT,

to_base64 выдаёт строку, в которой могут присутствовать только 64 аски-символа, все с кодами не более 128 , там какую кодировку ни поставь, всё едино будет
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39290548
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

авторИщите аналогичный фрагмент в доке по MariaDB.по Марии нет отдельной документации, все как и в исходнике )
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39290556
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://mariadb.com/kb/en/mariadb/aes_encrypt/ Description

AES_ENCRYPT() and AES_DECRYPT() allow encryption and decryption of data using the official AES (Advanced Encryption Standard) algorithm, previously known as "Rijndael." Encoding with a 128-bit key length is used, but you can extend it up to 256 bits by modifying the source. We chose 128 bits because it is much faster and it is secure enough for most purposes.

AES_ENCRYPT() encrypts a string str using the key key_str, and returns a binary string.

AES_DECRYPT() decrypts the encrypted string and returns the original string.

The input arguments may be any length. If either argument is NULL, the result of this function is also NULL.

Because AES is a block-level algorithm, padding is used to encode uneven length strings and so the result string length may be calculated using this formula:

16 x (trunc(string_length / 16) + 1)
If AES_DECRYPT() detects invalid data or incorrect padding, it returns NULL. However, it is possible for AES_DECRYPT() to return a non-NULL value (possibly garbage) if the input data or the key is invalid.

It is highly recommended that a passphrase is hashed first before passing it to AES_ENCRYPT.

Examples

INSERT INTO t VALUES (AES_ENCRYPT('text',SHA2('password',512)));
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39290578
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто логическое измышлениену и судя по
We chose 128 bits because it is much faster and it is secure enough for most purposes
AES ENCRYPT == mcrypt_encrypt(MCRYPT_RIJNDAEL_128, ...
а вообще чем шифруете, тем и расшифровывайте, не смешивайте PHP и MySQL в кучу

дебри, лес густой
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39290584
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex_Ustinovа вообще чем шифруете, тем и расшифровывайте, не смешивайте PHP и MySQL в кучу +1
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39290679
AES ENCRYPT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirAES ENCRYPT,

to_base64 выдаёт строку, в которой могут присутствовать только 64 аски-символа, все с кодами не более 128 , там какую кодировку ни поставь, всё едино будет

Не подходит. Это нужно,чтобы был ключ.

Мне бы про кодировку понять, почему возвращаются знаки вопросов в bdForge?

У меня задача при случае имея ключ просмотреть данные в самой бд, а не только на клиенте.
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39290692
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AES ENCRYPTМне бы про кодировку понять, почему возвращаются знаки вопросов в bdForge?Потому что не для всех кодов символов существует отображаем символ.
AES ENCRYPTУ меня задача при случае имея ключ просмотреть данные в самой бд, а не только на клиенте.Ну так в БД и шифруйте.
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39290701
AES ENCRYPT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftAES ENCRYPTУ меня задача при случае имея ключ просмотреть данные в самой бд, а не только на клиенте.Ну так в БД и шифруйте.

У меня трех-звенка.

БД <=> WebAPI <=> Клиентское приложение

Я хочу потенциально БД защитить, чтобы влезая туда не было возможности понять что там произошло.
Все реализовано на хранимках.
Соответственно ни в БД, ни в WebAPI этого делать нельзя, потому как они лежат на одном сервере. Если кто-то залезет и получит доступ к БД и скриптам - получится плохо. Это не из области фантастики - просто бд лежит на хостинге банально, следовательно вся защита - это что в уме у админа и хозяина хостинга.

Потому best_of_all это шифровать/дешифровать на клиенте. Но при этом хочется иметь возможности выполнить код в БД при необходимости, например, на локальном, чтобы делать какие-то изменения не клиентом, а в БД - гибкости добавляет.

Вот я и ищу способы как это сделать. В том числе пытаюсь понять как этот AES в MySQL кодирует и как это повторить в клиентском приложении.
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39290721
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AES ENCRYPT,

у вас ПХП тоже на удаленке. Т.е. по логике - шифровать в ПХП тоже отпадает. Хотите на клиенте? Тогда это надо полноценное клиентское приложение, которое и будет включать модуль шифрования. Только вам будет известно , как же там что шифруется (до взлома, если это кому то надо). Веб-сайт будет работать только для централизации обновлений
Как ни крути, вытекает один вывод - не придумывайте велосипед.
1. Либо доверяйте хостеру,
2. либо сервер ставьте свой физический сервак в ваше личное секретное место (провайдеры сейчас могут обеспечить и статическим IP и достойным каналом, домены тоже недорогие)
3. Либо оставьте эту затею - только охраняемый от внешнего физического доступа сервер имеет надежную защиту
Много шуток, но в каждой есть доля правды
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39290742
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AES ENCRYPT,

php - это уже само по себе дыра.
клиент - браузер? - открытый код, только ленивый не будет дебажить. и никакая шифрация не спасёт.
самое простое и надёжное - свой сервак.
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39290960
AES ENCRYPT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо. Но как всегда не прошенные советы и мнения. Давайте по существу.

Клиент нормальный и полноценный. Не тонкий.

Мобильное приложение, десктопное, для мак. И тд.

Задача - это иметь возможность прогнать данные через дешифрацию на сервере. Для этого в бд и на клиенте надо иметь одинаковые алгоритмы дешифрации с ключом.
Толи АЕС встроить в клиента (то есть на клиенте тоже надо получить знаки вопроса при энкрипте), толи в бд функцию писать, что вообще не факт.
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39290970
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AES ENCRYPTс ключомВот именно, что "с ключом". Если будете запускать какие-то запросы на сервере, ключ во время их выполнения туда попадёт, и если уж хостер так стремится завладеть вашими сверхценными дынными, тут-то он его(ключ) и цап!(с).
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39291057
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AES ENCRYPTМне бы про кодировку понять
Какое слово из "AES_ENCRYPT() encrypts a string str using the key key_str, and returns a binary string " Вам непонятно?
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39291301
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AES ENCRYPTВсе реализовано на хранимках.Шифруйте данные в БД. Передавайте в хранимки пароль через параметры, чтобы не зашивать его внутрь открытым текстом.

AES ENCRYPTПотому best_of_all это шифровать/дешифровать на клиентеНасчет "best" - не факт. Часть функционала БД вы при этом можете потерять, например, индексы. Запрос вида
Код: sql
1.
SELECT * FROM personal WHERE family LIKE 'Иванов%'

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

AES ENCRYPTНо как всегда не прошенные советы и мнения.Ну так странно городить бронированную калитку при дырявом заборе.

AES ENCRYPTпросто бд лежит на хостинге банально, следовательно вся защита - это что в уме у админа и хозяина хостинга.При таких требованиях к защите, минимальный вариант - арендованный физический (в том смысле, что не виртуальный) выделенный сервер, на котором всё, начиная с ОС, установлено и настроено доверенным и квалифицированным админом. Лучше же, конечно, как говорили выше, свой сервер на своей территории под своим присмотром.
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39291366
AES CRYPT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglirAES ENCRYPTс ключомВот именно, что "с ключом". Если будете запускать какие-то запросы на сервере, ключ во время их выполнения туда попадёт, и если уж хостер так стремится завладеть вашими сверхценными дынными, тут-то он его(ключ) и цап!(с).

Я ж писал - запускать можно и локально - слил, сделал, залил. Только давайте не будем писать что "сделаьт это в скрипте/клиенте - тоже самое"))) не тоже самое )))

Dimitry Sibiryakov
Нужно повторить тоже самое в клиенте. Получится ли например в дельфи получить такое же с вопросами? Вы же дельфист, да?))

miksoft
Шифруйте данные в БД. Передавайте в хранимки пароль через параметры, чтобы не зашивать его внутрь открытым текстом.Это то, о чем говорит tabglir и то, о чем я выше сказал, что не вариант. Но опять же - это понятно. Хотелось бы шифровать без БД, но иметь БД-вариант как условный "фейловер".

Насчет "best" - не факт. Часть функционала БД вы при этом можете потерять, например, индексы. Запрос вида
Согласен. Но этого не требуется. И не потребуется. В приложениях это не нужно. Да и это можно сделать на клиенте, что собственно и делается.
Хотя в будущем, через пару лет, это может понадобиться. Единственное место где это используется - это поиск клиента, когда оператор вбивает в карточку. Сейчас пока база маленькая, все клиенты грузятся при запуске. Потом станет больше и наверное будет дорого их грузить. Правда это долгий период. До 5ти лет займет для существенного прироста. макс вес строки 200 байт. А прирост 3-5 клиента в день. Думаю до того времени вообще всё поменяется не один раз.


Ну так странно городить бронированную калитку при дырявом заборе.

При таких требованиях к защите, минимальный вариант - арендованный физический (в том смысле, что не виртуальный) выделенный сервер, на котором всё, начиная с ОС, установлено и настроено доверенным и квалифицированным админом. Лучше же, конечно, как говорили выше, свой сервер на своей территории под своим присмотром.
Не прошенные в том смысле, что а) это понятно и б) вопрос был не про это. Я сторонник того, чтобы говорить по существу, без отвлеканий в сторону. Много сил бестолку. Если бы все это можно было реализовать атк, я бы так и сделал.
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39291453
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AES CRYPTНужно повторить тоже самое в клиенте. Получится ли например в дельфи получить такое же с вопросами?
Да, array of byte в Delphi существует.
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39291466
AES ENCRYPT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovAES CRYPTНужно повторить тоже самое в клиенте. Получится ли например в дельфи получить такое же с вопросами?
Да, array of byte в Delphi существует.
И проверить получится?
Сделать например ShowMessage, вставить в SELECT AES_DECRYPT и получить тоже самое значение, а не null?
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39291579
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AES ENCRYPTИ проверить получится?
Ну откуда же мне-то знать получится у тебя или нет?.. Судя по этому топику - это выше твоих способностей лет на пять, но кто знает...
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39291677
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AES CRYPTПолучится ли например в дельфи получить такое же с вопросами?Дались вам эти вопросы... Визуально отображать зашифрованные данные нет никакого смысла. Если так уж хочется читабельности - отображайте в HEX-е или в Base64.
AES CRYPTДа и это можно сделать на клиенте, что собственно и делается.Т.е. вы тащите всю таблицу на клиента? А зачем вам вообще тогда СУБД?
Я бы в таком случае вообще только шифрованный файл на хостинг помещал. А уж внутри файл с данными для локальной СУБД или вообще файл своего формата - дело второе.
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39291680
AES ENCRYPT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miksoftAES CRYPTПолучится ли например в дельфи получить такое же с вопросами?Дались вам эти вопросы... Визуально отображать зашифрованные данные нет никакого смысла. Если так уж хочется читабельности - отображайте в HEX-е или в Base64.
AES CRYPTДа и это можно сделать на клиенте, что собственно и делается.Т.е. вы тащите всю таблицу на клиента? А зачем вам вообще тогда СУБД?
Я бы в таком случае вообще только шифрованный файл на хостинг помещал. А уж внутри файл с данными для локальной СУБД или вообще файл своего формата - дело второе.
Я не к тому, чтобы отображать зашифрованные данные)))) это глупость какая-то))) я к тому, чтобы добиться идентичного результата шифрования и проверить на скульном декрипте, скопировав значение через буфер.

Да, получается что тащу. Пока что. По-другому никак пока.
Мне нужно, чтобы по мере ввода в приложении фильтровался список. Делать перезапрос по таймеру может быть довольно долго. Да и штатными средствами винды показывающей попап так все равно с поздапросрм не сделать.

Есть и другие задачи.
Поэтому пока так. Без сжатия и через джсон. И не напрямую в бд.
Заморочек с файлами будет больше, учитывая возможный одновременный доступ. В общем я как всегда ценю подсказки и приглашения решить все иначе, но настаиваю на своем решении и обсуждении этого пути, а не другим. Параллельно есть ещё просто интерес с этим разобраться.
...
Рейтинг: 0 / 0
Этот удивительный AES_ENCRYPT
    #39291682
Фотография Alex_Ustinov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну есть же исходники , посмотрите как пришпилить к приложению, сравнить то можно ради интересно, просто не понятен логический путь шифрования дешифровки
...
Рейтинг: 0 / 0
25 сообщений из 28, страница 1 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Этот удивительный AES_ENCRYPT
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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