Я работаю с базой данных MySql, для которой мне не доступен код на стороне клиента.
Мне нужно добавить намного больше строк в таблицу, а не вручную через клиента.
CREATE TABLE `__Auth` (
`doctype` varchar(140) COLLATE utf8mb4_unicode_ci NOT NULL,
`name` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`fieldname` varchar(140) COLLATE utf8mb4_unicode_ci NOT NULL,
`password` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
`encrypted` int(1) NOT NULL DEFAULT 0,
PRIMARY KEY (`doctype`,`name`,`fieldname`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci ROW_FORMAT=COMPRESSED
Действительная команда вставки выглядит следующим образом ...
INSERT INTO `_a7a7e96ba1644fd9`.`__Auth` (doctype,name,fieldname,password,encrypted) VALUES
(
'Email Account',
'John Smith',
'password',
'gAAAAABd46ytFrw8sNGQf9-kk0q3qc9ozKw1aF5OyFtF31qxLm4WK9iWXC-H-uWRsUCPW_QUFe8dhYu0C3D6Nd36dlTLb1EuYiQkHt6-aJHSv_fZ77w2knA=',
1
);
У меня есть ключ шифрования. Выглядит это так ... FwCG-MUY37j6Qqqzm_Z-kkXkHwiO1y09tg6QNhZVuXg=
... однако моя проблема в том, что Мне нужно сгенерировать зашифрованную строку пароля в моих операторах вставки!
Я пытался использовать вставки, заменяя поле пароля, например ...
AES_ENCRYPT('qtgkskwqroqjrewq','FwCG-MUY37j6Qqqzm_Z-kkXkHwiO1y09tg6QNhZVuXg=')
... но, потому что вывод выглядит так ', ÈÚ:! ¼ ÷ X © u¯r @ ÷ S¦ã © pv ' Я получаю SQL Error [1366] [22007]: (conn=794) Incorrect string value
.
Поскольку зашифрованный пароль очень похож на короткий открытый ключ RSA, который я пробовал ...
SELECT FROM_BASE64('gAAAAABd46ytFrw8sNGQf9-kk0q3qc9ozKw1aF5OyFtF31qxLm4WK9iWXC-H-uWRsUCPW_QUFe8dhYu0C3D6Nd36dlTLb1EuYiQkHt6-aJHSv_fZ77w2knA=');
... но результат будет null
.
Вопросы
1) Как я могу построить команду вставки с функциями MySql, использующими такую клавишу, как эта...
'FwCG-MUY37j6Qqqzm_Z-kkXkHwiO1y09tg6QNhZVuXg ='
... чтобы включить этот текст ...
'qtgkskwqroqjq'
1045 * ... в этот текст ... 1047 *
gAAAAABd46ytFrw8sNGQf9-kk0q3qc9ozKw1aF5OyFtF31qxLm4WK9iWXC-H-uWRsUCPW_QUFe8dhYu0C3D6Nd36dlTLb1EuYiQkHt6-aJHSv_fZ77w2knA =' 1051 *?
2) Должен ли мой оператор соединения с базой данных и / или оператор INSERT указывать utf8mb4_unicode_ci , пока я пытаюсь использовать AES_ENCRYPT ();
3) Я пытаюсь сделать невозможное ??