Как хранить mcrypt_module_open ('rijndael-256', '', 'ofb', '');в MYSQL - PullRequest
1 голос
/ 22 декабря 2011

У меня небольшая проблема с хранением mcrypt_module_open('rijndael-256','','ofb',''); в базе данных MySQL.

Когда он вставляет зашифрованные данные в базу данных MySQL, он выглядит следующим образом ˜9ÏÏd‰.

Это должно выглядеть так

÷ `¥ ¶Œ" ¼|q ... EOC

Мне интересно, нужно ли мне что-то делать, чтобы заставить это работать?

Ответы [ 3 ]

3 голосов
/ 22 декабря 2011
  • Использование типа поля BLOB-объектов для хранения двоичных данных (BLOB, VARBINARY, BINARY)
  • Если вы этого еще не сделали: экранируйте свои значения с помощью подходящих методов, если вы их используетепрямо в SQL-выражении.Или даже лучше: используйте параметры запроса / подготовленные операторы.
  • В качестве крайней меры вы можете просто закодировать свои данные с помощью base64_encode или bin2hex.
  • Если вы хотите отобразить двоичные данные на консоли или в браузере (даже для целей отладки), используйте также одну из этих кодировок.В противном случае вы можете не увидеть фактические данные, потому что браузер может неправильно отображать ваш двоичный файл.
1 голос
/ 03 января 2012

В общем, неплохо было бы кодировать и декодировать в base64 подобные двоичные данные. См. Лучший способ использовать PHP для шифрования и дешифрования паролей? .

0 голосов
/ 22 декабря 2011

Вы пытались составить таблицу, которую поддерживает ваш персонаж.

Символы '÷ `¥ ¶Œ" ¼¦q… ËoÇ' похожи на UTF-8 или какую-то другую кодировку, найдите кодировку ваших персонажей и обновите таблицу Collation на основе вашей кодировки

...