mysql AES加解密

news/2025/3/31 14:30:15/文章来源:https://www.cnblogs.com/wxsclob/p/18798557

mysql AES加解密

MySQL中,可以使用内置的加密和解密函数来进行AES加密和解密。从MySQL 5.6开始,引入了AES_ENCRYPT()AES_DECRYPT()函数,这两个函数可以用来对数据进行AES加密和解密。

AES_ENCRYPT()

AES_ENCRYPT(data, key)函数用于对数据进行AES加密。其中:

data 是你想要加密的数据。

key 是用于加密的密钥,必须是16、24或32字节长(对应AES-128、AES-192或AES-256位密钥长度)。

AES_DECRYPT()

AES_DECRYPT(data, key)函数用于对数据进行AES解密。其中:

data 是你想要解密的数据。

key 是用于解密的密钥,必须与加密时使用的密钥相同。

示例

假设我们有一个表users,其中有一个字段password,我们想对这个字段进行加密存储和解密。

加密数据

INSERT INTO users (username, password) VALUES ('user1', AES_ENCRYPT('mysecretpassword', 'mysecretkey'));

  

解密数据

SELECT username, AES_DECRYPT(password, 'mysecretkey') AS decrypted_password FROM users WHERE username = 'user1';

  

注意事项

密钥管理:确保密钥安全存储,不要硬编码在SQL查询中,特别是在生产环境中。可以考虑使用环境变量或配置文件来管理密钥。

长度要求:密钥长度必须符合AES的要求(16、24或32字节)。如果使用短于16字节的密钥,可以通过填充(padding)到16字节来实现。例如,可以使用LPAD(key, 16, ' ')来确保密钥长度为16字节。

数据类型:加密后的数据是二进制格式,因此在某些情况下可能需要在插入前转换为十六进制字符串(使用HEX()函数),以及在解密后从十六进制转换回二进制(使用UNHEX()函数)。例如:

INSERT INTO users (username, password) VALUES ('user1', HEX(AES_ENCRYPT('mysecretpassword', 'mysecretkey')));SELECT username, AES_DECRYPT(UNHEX(password), 'mysecretkey') AS decrypted_password FROM users WHERE username = 'user1';

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/907241.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

性能测试的基本理论

一、性能测试介绍 1、什么叫做性能测试?(1)通过某些工具或手段来检测软件的某些指标是否达到了要求,这就是性能测试 (2)指通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试2、性能测试的时间?在功能测试完成后才能进行性能测试3、…

服务器备份资料,怎么给服务器备份资料

在数字化时代,服务器承载着企业大量的关键数据,从客户信息、业务文档到重要的应用程序和数据库,这些数据是企业运营和发展的核心资产。一旦数据丢失或损坏,可能会给企业带来严重的经济损失和业务中断风险。因此,给服务器备份资料成为了保障数据安全的关键举措。以下将详细…

免去繁琐的手动埋点,Gin 框架可观测性最佳实践

本文将着重介绍 Gin 框架官方推荐的几种可观测性方案并进行对比,从而得出 Gin 框架可观测性的最佳实践。作者:牧思 背景 在云原生时代的今天,Golang 编程语言越来越成为开发者们的首选,而对于 Golang 开发者来说,最著名的 Golang Web 框架莫过于 Gin [ 1] 框架了,Gin 框架…

深入浅出WPF命令系统之InputBinding(MouseBinding与KeyBinding)

之前的随笔中剖析了WPF命令系统的一部分,文中是通过CommandBinding或Binding两种方式将命令(ICommand)与Button控件关联,如下: 方式一,CommandBinding1 <Window.Resources>2 3 <RoutedCommand x:Key="MyTestCommand"/>4 5 </Window.Resou…

20241217 实验二《Python程序设计》实验报告

20241217 2024-2025-2 《Python程序设计》实验二报告 课程:《Python程序设计》 班级: 2412 姓名: 黄迅 学号:20241217 实验教师:王志强 实验日期:2025年3月26日 必修/选修: 公选课 一、实验内容 1.设计并完成一个完整的应用程序,完成加减乘除模等运算,功能多多益善; …

教师教学质量分析评价系统 A教育大模型

教师教学质量分析评价系统基于YOLOv12+RNN的深度学习算法,教师教学质量分析评价系统精准地检测到学生是否在玩手机、举手、睡觉、交头接耳、趴桌子、行走运动等行为。同时,该模型还能够捕捉学生的情绪表情,如开心、厌恶、愤怒、悲伤、沮丧、恐惧、无表情等。这些行为和表情数…

服务器数据备份方法,服务器数据备份方法推荐

在当今数字化浪潮中,服务器宛如企业运营的“数据心脏”,承载着海量核心数据。一旦数据丢失,企业可能面临难以估量的损失。从财务报表到客户信息,从业务文档到关键代码,这些数据的安全维系着企业的生命线。因此,选择有效的服务器数据备份方法,成为企业数据管理的重中之重…

nocoding-codes-xxt

// UserScript // @name 🐮ABC 网课助手|超星学习通|智慧树|🚀自动答题|▶️一键操作|🏆超全题库(每日更新、自动收录)|支持划词搜题 // @namespace oolikeABC // @version 3.2.3 // @author oolikeABC // @description 【🥇懒人操作】…

牛客 小白112 20250326

牛客 小白112 20250326 https://ac.nowcoder.com/acm/contest/103957 A: 题目大意:天平一端有 \(w\) 重的物品,给定砝码 \(a,b\) 判断能否是天平平衡 #include<bits/stdc++.h> #define cintie ios::sync_with_stdio(false);cin.tie(0);cout.tie(0); #define Trd int T…

web132笔记(php运算符优先级 || 优先级低于 )

打开是⼀个⽹站,robots.txt⾥有个/admin,访问之后<?php/* # -*- coding: utf-8 -*- # @Author: h1xa # @Date: 2020-10-13 06:22:13 # @Last Modified by: h1xa # @Last Modified time: 2020-10-13 20:05:36 # @email: h1xa@ctfer.com # @link: https://ctfer.com*/#…