Шифровать и дешифровать столбец Non varchar в базе данных Mysql - PullRequest
0 голосов
/ 14 января 2020

Я искал и провел несколько тестов, но не могу найти способ зашифровать и расшифровать столбец, который не имеет тип данных varchar.

CREATE TABLE TEMP_ENCRYPT (
 TEST_STRING VARCHAR(255),
 TEST_INT INT 
 )

INSERT INTO TEMP_ENCRYPT (TEST_STRING, TEST_INT) VALUES
(DES_ENCRYPT('valor string', '1234'), DES_ENCRYPT('56', '1234'))


select
 TEST_STRING as a,
 DES_DECRYPT(TEST_STRING, '1234') as aa,
 TEST_INT as b,
 DES_DECRYPT(TEST_INT, '1234') as bb
from TEMP_ENCRYPT

Этот выбор возвращает

a | аа | б | bb

ÿ £ ßû↵gê Tïë¦ß | доблестная строка | 0 | 0

Кажется, это базовая вещь c, что я делаю не так?

1 Ответ

2 голосов
/ 14 января 2020

DES_ENCRYPT('56', '1234') приведет к /+nNpdXyewki, который не может быть сохранен в столбце, предназначенном для целых чисел, поэтому он (в зависимости от ваших настроек) будет либо сохранен как 0, либо выдаст предупреждение. Если вы хотите хранить зашифрованные данные, вам нужно хранить их в столбце, который поддерживает строки.

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