Итак, я просматривал интернет и сталкивался с встроенной функцией MySQL AES_ENCRYPT. Это не кажется слишком сложным в использовании, но некоторые источники говорят мне хранить зашифрованные данные как VARCHAR, а некоторые говорят, что они хранят его как BLOB. Что я должен хранить зашифрованные данные как?
MySQL - Как хранить AES_Encrypted данные?
Ответ 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.