символы mcrypt, вызывающие ошибки в mysql - PullRequest
0 голосов
/ 10 января 2012

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

Вот пример запроса, который не работает:

UPDATE mydatabase.clients SET firstname='\'å»”é¶Q' WHERE id_client=65

Но если я изменю его на:

UPDATE mydatabase.clients SET firstname='Test' WHERE id_client=65

Тогда это сработает.Так что, должно быть, эти сумасшедшие персонажи из mcrypt отбрасывают вещи.

Что мне делать с моей базой данных mysql, чтобы она принимала эти символы?

Ответы [ 3 ]

1 голос
/ 10 января 2012

Вывод шифра представляет собой строку байтов, а не символов. Вы не должны хранить зашифрованный текст непосредственно как текст. Используйте «двоичный» тип данных или преобразуйте строку байта в текст с помощью чего-то вроде Base-64.

0 голосов
/ 03 февраля 2012

Убедитесь, что вы экранировали зашифрованную строку.Это важно для правильной работы!

Я работал с MySQL и Mcrypt, и я храню свои зашифрованные данные и векторы инициализации в двоичном виде, и я экранирую все эти строки, прежде чем они будут помещены в запрос.Работает как шарм.

0 голосов
/ 10 января 2012

Вместо этого измените тип столбца на двоичный, это может сработать.

...