mysql aes_encrypt 错误,在mysql中的AES_ENCRYPT之后无法使用AES_DECRYPT

I created user table

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;

I inserted one row:

INSERT into user (first_name, address) VALUES (AES_ENCRYPT('Obama', 'usa2010'),AES_ENCRYPT('Obama', 'usa2010'));

To select this row i used:

SELECT AES_DECRYPT(first_name, 'usa2010'), AES_DECRYPT(address, 'usa2010') from user;

I am getting the following result.What i need to do see my data.No data is visible for me.

jqUxS.png

解决方案

According to the Manual:

AES_ENCRYPT() encrypts a string and returns a binary string.

AES_DECRYPT() decrypts the encrypted string and returns the original string.

I don't know why it is still returning a binary string in your case. Anyway, try this:

SELECT *,

CAST(AES_DECRYPT(first_name, 'usa2010') AS CHAR(50)) first_name_decrypt

FROM user

And use first_name_decrypt instead of first_name.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值