【发布时间】:2013-04-25 20:54:26
【问题描述】:
我发现了类似的问题,但这个问题没有明确的答案。我有这张桌子:
CREATE DATABASE testDB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE testTable
(
firstName binary(32) not null,
lastName binary(32) not null
/* Other non-binary fields omitted */
)
engine=INNODB DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
这条语句执行得很好:
INSERT INTO testTable (firstName) VALUES (AES_ENCRYPT('Testname', 'test'));
但是,这会返回 NULL:
SELECT AES_DECRYPT(firstName, 'test') FROM testTable;
为什么返回 NULL?
Fwiw,这会按预期返回“testValue”:
SELECT AES_DECRYPT(AES_ENCRYPT('testValue','thekey'), 'thekey');
【问题讨论】:
-
@owlstead 我做到了。它在 INSERT 和 SELECT 语句中。我选择的字段是
firstName,来自表testTable。 -
哦,那是你,我的错,谢谢你的反馈:) 你可以在一段时间后接受你自己的答案