Подтвердить что ты не робот

MySQL - Как хранить AES_Encrypted данные?

Итак, я просматривал интернет и сталкивался с встроенной функцией MySQL AES_ENCRYPT. Это не кажется слишком сложным в использовании, но некоторые источники говорят мне хранить зашифрованные данные как VARCHAR, а некоторые говорят, что они хранят его как BLOB. Что я должен хранить зашифрованные данные как?

4b9b3361

Ответ 1

Многие функции шифрования и сжатия возвращают строки, для которых результат может содержать произвольные байтовые значения. Если вы хотите сохранить эти результаты, используйте столбец с двоичным строковым типом данных VARBINARY или BLOB. Это позволит избежать возможных проблем с удалением конечного пространства или преобразованием набора символов, которое изменило бы значения данных, например, если вы используете недвоичный строковый тип данных (CHAR, VARCHAR, TEXT).

Источник: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html

Ответ 2

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

Ответ 3

Вы можете использовать двоичный код. BINARY в STRING. Он должен работать. Я использую его. Напишите мне ответ, если он не работает.

Ответ 4

Я всегда использовал blobs для хранения зашифрованных данных в MySQL.