Поэтому я просматривал интернет и сталкивался с встроенной функцией MySQL AES_ENCRYPT. Это не кажется слишком сложным в использовании, но некоторые источники говорят мне хранить зашифрованные данные как VARCHAR, а некоторые говорят, что они хранят его как BLOB. Что я должен хранить зашифрованные данные как?
Многие функции шифрования и сжатия возвращают строки, для которых результат может содержать произвольные байтовые значения. Если вы хотите сохранить эти результаты, используйте столбец с двоичным строковым типом данных VARBINARY или BLOB. Это позволит избежать возможных проблем с удалением конечного пространства или преобразованием набора символов, которое изменило бы значения данных, например, если вы используете недвоичный строковый тип данных (CHAR, VARCHAR, TEXT).
Источник: http://dev.mysql.com/doc/refman/5.5/en/encryption-functions.html
Если вам нужно использовать VARCHAR, а не BLOB, тогда конвертируйте зашифрованный двоичный код в Base64, который использует только печатные символы и может быть безопасно сохранен как VARCHAR. Конечно, вам нужно будет преобразовать его из Base64 в двоичный файл перед расшифровкой.
Вы можете использовать Binary. BINARY в STRING. Он должен работать. Я использую его. Напишите мне ответ, если он не работает.
Я всегда использовал blobs для хранения зашифрованных данных в MySQL.