开发者社区> 问答> 正文

在mysql中的AES_ENCRYPT之后无法使用AES_DECRYPT?mysql

我创建了用户表

CREATE TABLE user ( id BIGINT UNSIGNED NOT NULL AUTO_INCREMENT , first_name VARBINARY(100) NULL , address VARBINARY(200) NOT NULL , PRIMARY KEY (id)) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_general_ci; 我插入了一行:

INSERT into user (first_name, address) VALUES (AES_ENCRYPT('Obama', 'usa2010'),AES_ENCRYPT('Obama', 'usa2010')); 要选择此行,我使用了:

SELECT AES_DECRYPT(first_name, 'usa2010'), AES_DECRYPT(address, 'usa2010') from user; 我得到以下结果。我需要做些什么来查看我的数据。我看不到任何数据。

展开
收起
保持可爱mmm 2020-05-17 17:55:40 861 0
1 条回答
写回答
取消 提交回答
  • 根据手册:

    AES_ENCRYPT()加密字符串并返回二进制字符串。 AES_DECRYPT()解密加密的字符串并返回原始字符串。

    MySQL 5.1文件:AES_ENCRYPT()/ AES_DECRYPT() 我不知道为什么在您的情况下它仍然返回二进制字符串。无论如何,请尝试以下操作:

    SELECT *, CAST(AES_DECRYPT(first_name, 'usa2010') AS CHAR(50)) first_name_decrypt FROM user 并使用first_name_decrypt代替first_name。来源:stack overflow

    2020-05-17 18:06:05
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
深入MySQL实战 立即下载
MySQL 5.7让优化更轻松 立即下载
好的 MySQL 兼容可以做到什么程度 立即下载

相关镜像