技术文摘
MySQL使用AES_ENCRYPT()与AES_DECRYPT()进行加解密的示例
MySQL使用AES_ENCRYPT()与AES_DECRYPT()进行加解密的示例
在数据安全日益重要的今天,对敏感数据进行加密存储是很多应用场景下的必要操作。MySQL数据库提供了强大的加密函数,其中AES_ENCRYPT()与AES_DECRYPT()能够帮助我们轻松实现数据的加解密。下面就通过具体示例来详细了解它们的使用方法。
创建一个用于测试的表。例如,创建一个名为“user_info”的表,用于存储用户的敏感信息:
CREATE TABLE user_info (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
password VARCHAR(255)
);
接下来,使用AES_ENCRYPT()函数对数据进行加密存储。假设要插入一条用户信息,用户名是“test_user”,密码是“test_password”,加密密钥为“my_secret_key”,可以使用以下SQL语句:
INSERT INTO user_info (username, password)
VALUES (
'test_user',
AES_ENCRYPT('test_password','my_secret_key')
);
这里,AES_ENCRYPT()函数接受两个参数,第一个参数是要加密的字符串,第二个参数是加密密钥。加密后的数据将以二进制形式存储在“password”字段中。
当需要查询并解密数据时,就可以使用AES_DECRYPT()函数。例如,查询刚才插入的用户信息并解密密码:
SELECT
username,
CAST(AES_DECRYPT(password,'my_secret_key') AS CHAR) AS decrypted_password
FROM
user_info
WHERE
username = 'test_user';
在这个查询中,AES_DECRYPT()函数同样接受两个参数,加密后的数据和加密密钥。通过CAST()函数将解密后的二进制数据转换为字符类型,以便我们能够正确查看密码。
需要注意的是,在实际应用中,密钥的管理至关重要。应该确保密钥的安全性,避免泄露。不同版本的MySQL在加密算法的支持和函数的使用上可能会有细微差异,要根据实际情况进行调整。
通过上述示例可以看到,MySQL的AES_ENCRYPT()与AES_DECRYPT()函数为我们提供了一种简单有效的数据加解密方式,能够在一定程度上保障数据的安全性,满足实际业务中对敏感数据存储和使用的需求。
- 七个鲜为人知的 JavaScript Console 技巧
- 三年 Golang 码农不知 New 与 Make 区别
- 解析软件架构伸缩性的三大准则
- 微前端中,子系统页面怎样滚动到指定位置,你掌握了吗?
- Long 类型数据回传前端,17 位起竟全是 0 ?
- 掌握这招 SpringBoot 3.3 技巧,轻松解决 XSS 漏洞!
- C# Opcda 应用全面解析,您掌握了吗?
- 大语言模型引领配置与编码的幸福方向
- 高并发业务中的库存扣减策略
- 哔哩哔哩直播通用奖励系统大揭秘
- JavaScript 中解构赋值及常用数组操作盘点
- 集合支持的操作及其实现方式
- CSS 文本两端对齐的多种实现方法盘点
- OpenTelemetry MDC:日志与追踪的融合实践指南
- 携程酒店前端 BFF 的能效变革实践