内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
我创建了user表
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;
我得到以下结果。我需要做的是看我的数据。我看不见任何数据。
根据文档:
AES_ENCRYPT()加密一个字符串并返回一个二进制字符串。 AES_DECRYPT()解密加密的字符串并返回原始字符串。
我不知道为什么它仍然在你的情况下返回一个二进制字符串。试试这个:
SELECT *,
CAST(AES_DECRYPT(first_name, 'usa2010') AS CHAR(50)) first_name_decrypt
FROM user
并用first_name_decrypt
而不是first_name
。
腾讯云区块链TBaaS服务已获国家互联网信息办公室第一批境内区块链信息服务备案,基于TBaaS开发上线后的区块链应用程序建议根据《区块链信息服务管理规定》等有关规定获取备案相关信息。