mysql中DES加密解密
DES_DECRYPT(crypt_str[,key_str])
使用DES_ENCRYPT()加密一个字符串。若出现错误,这个函数会返回 NULL。
注意,这个函数只有当MySQL在SSL 的支持下配置完毕时才会运作。请参见5.8.7节,“使用安全连接”.
假如没有给定 key_str 参数, DES_DECRYPT() 会首先检查加密字符串的第一个字节, 从而确定用来加密原始字符串的DES密码关键字数字,之后从DES关键字文件中读取关键字从而解密信息。为使其运行,用户必须享有 SUPER 特权。可以选择--des-key-file服务器指定关键字文件。
假如你向这个函数传递一个key_str 参数,该字符串被用作解密信息的关键字。
若 crypt_str 参数看起来不是一个加密字符串, MySQL 会返回给定的 crypt_str。
DES_ENCRYPT(str[,(key_num|key_str)])
用Triple-DES 算法给出的关键字加密字符串。若出现错误,这个函数会返回NULL。
注意,这个函数只有当MySQL 在SSL的支持下配置完毕后才会运行。请参见5.8.7节,“使用安全连接”.
使用的加密关键字的选择基于第二个到 DES_ENCRYPT()的参数,假如给定:
参数 |
说明 |
无参数 |
使用来自DES关键字文件的第一个关键字。 |
key_num |
使用DES 关键字文件给出的关键字数字(0-9)。 |
key_str |
使用给出的关键字字符串为 str 加密。 |
选择--des-key-file服务器指定关键字文件。
返回字符串是一个二进制字符串,其中第一个字符为 CHAR(128 | key_num)。
加上 128使得识别加密关键字更加容易。若你使用一个字符串关键字,则 key_num 为127。
结果的字符串长度为 new_len = orig_len + (8-(orig_len % 8))+1。
DES关键字文件中的每一行都具有如下格式:
key_num des_key_str
每个key_num 必须是一个从0到0范围内的数字。文件中行的排列顺序是任意的。 des_key_str 是用来加密信息的字符串。在数字和关键字之间应该至少有一个空格。若你未指定任何到DES_ENCRYPT()的关键字参数,则第一个关键字为默认的使用关键字。
使用FLUSH DES_KEY_FILE语句,你可以让 MySQL从关键字文件读取新的关键字值。这要求你享有 RELOAD特权。
拥有一套默认关键字的一个好处就是它向应用程序提供了一个检验加密列值的方式,而无须向最终用户提供解密这些值的权力。
mysql> SELECT customer_address FROM customer_table
> WHERE crypted_credit_card = DES_ENCRYPT('credit_card_number');
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人