2015-08-06 2 views
0

Im пытается кодировать простую строку с помощью функции ENCODE(). Используя строку, она дает мне текст как результат. Но использование поля дает мне BLOB. Как я могу обойти BLOB и выводить текст для закодированных полей?MYSQL | ENCODE() выводит blob вместо текста

Вот что происходит:

SELECT ENCODE('myText,'myPw')
- Выход: baddade4b04e // Цель = Это + с помощью имя_поля

SELECT ENCODE(Field,'myPw') FROM myTable
- выход: [BLOB - 14B]


Что я пробовал:

SELECT CAST(ENCODE(Field,'myPw') AS CHAR(1000) CHARACTER SET utf8) FROM myTable
- Выходные: Пустые строки!

SELECT CONVERT(ENCODE(Field,'myPw') USING utf8) FROM myTable
- Выход:% (выход 1-2 символов, не может быть права)

Представьте меня есть столбец user. Теперь я хочу, чтобы «PaulPeter» был закодирован одинаково независимо от того, кодируется ли Im строка «PaulPeter» или поле user, где значение «PaulPeter».

Может ли кто-нибудь объяснить это мне? Огромное спасибо!

зашифрованной строка:

Encrypted string

Зашифрованного поле:

Encrypted field

MySQL-клиент Версия: 5.5.41
user: текст utf8_bin


EDIT:

я получил еще один вопрос по расшифровку здесь: Click
После того, как в состоянии кодировать, я получил ту же проблему там с AES_Encryption. Когда я шифрую строку, я получаю вывод в виде строки. При шифровании поля со строковым значением я получаю blob. . :(Полностью раздражает

+0

Не удается воспроизвести оба дают мне BLOB-MySQL 5.1.something – EJP

+0

Может быть, то будет проблема..? Im на 5.5.41 здесь.Добавил его к моему вопросу. В любом случае спасибо за попытку. – C4u

ответ

0

В столбце пользователь типа TEXT Попробуйте кастинг только, что столбец CHAR:..

SELECT AES_ENCRYPT(CAST(Field AS CHAR(1000)),'myPw') FROM myTable 
+0

Идея была правильной. Примите мое редактирование, чтобы мы могли закрыть это. :) Большое спасибо! – C4u

+0

Мое редактирование дает вам BLOB ??? Шутки в сторону? – C4u

+0

Нет Изменить, исходный код. Я удалю свой комментарий выше, чтобы избежать путаницы. –