Я представляю себя функциями шифрования в MYSQL.Ошибки строковых значений в AES_ENCRYPT/AES_DECRYPT
Просто написал простое заявление SQL, чтобы добавить зашифрованную запись в поле
INSERT INTO test_table (field1) VALUES(aes_encrypt('fieldentry','password'))
Когда я выполнить SQL я получаю следующую ошибку
Ошибка 1366: Неправильное значение строки: «\ xC7 \ xE13 \ XC4 \ XF4 ...»для столбца 'FIELD1' в строке 1 SQL Заявление - CHANGE COLUMN
field1
VARCHAR (255) NOT NULL COMMENT '!'
Теперь я прочитал, что это может иметь какое-то отношение к CHARACTER SET, и попытался изменить его с помощью utf8-default-сопоставления на utf8mb4 - сортировка по умолчанию, как рекомендовано, но это не имело никакого значения.
Я также попытался изменить тип столбца с VARCHAR на VARBINARY. SQL оператор побежал успешно, однако, когда я попытался следующее извлечь данные:
SELECT AES_DECRYPT(field1, '12345') AS endata FROM test_table
Do Until rst.EOF
Response.Write(rst("endata"))
rst.movenext
Loop
прогонов цикла, но значения не возвращаются (пустые строки)
Я просто искал простой что шифровать, а затем расшифровывать мои данные с помощью пароля в функции AES_ENCRYPT/AES_DECRYPT.
Спасибо. AES_ENCRYPT() отлично работает с хранением данных, однако AES_DECRYPT() возвращает несоответствие типа. ВЫБРАТЬ идентификатор, AES_DECRYPT (field1, 'мойпароль') AS endata ИЗ test_table Response.Write (первой ("endata") и "
") –
Благодаря Шубин, идеальное решение. –