MySQL - Как хранить AES_Encrypted данные? - PullRequest
15 голосов
/ 18 сентября 2011

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

Ответы [ 4 ]

22 голосов
/ 18 сентября 2011

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

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

1 голос
/ 18 сентября 2011

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

0 голосов
/ 18 сентября 2011

Я всегда использовал большие двоичные объекты для хранения зашифрованных данных в MySQL.

0 голосов
/ 18 сентября 2011

Вы можете использовать Binary.Двоичный в STRING.Это должно работать.Я использую это.Напишите мне ответ, если он не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...