MySQL 加密/压缩函数

时间:2024-01-23 23:51:14 

这些问题可能导致数据值的改变。一般而言,上述问题可能在你使用非二进制串数据类型(如char,varchar,text等数据类型)的情况下发生。

  • AES_ENCRYPT()和AES_DECRYPT()

AES_ENCRYPT()和AES_DECRYPT()可以加密/解密使用官方AES算法的数据。该算法使用128位密钥来编码,但用户可以将其扩展到256位。MySQL选用128位密钥,因为这样算法实现更快,而且对大多数用户而言它也足够安全了。


AES_ENCRYPT(str,key_str)函数加密一个字符串并返回一个二进制串。AES_DECRYPT(crypt_str, key_str) 函数可以解密使用官方AES(Advanced Encryption Standard)算法加密的数据并返回原有字符串,输入变量可以是任意长度。如果输入变量为NULL,那么该函数返回结果也为NULL。


因为AES是一个块级算法,需要使用补白来编码非偶数长度的字符串。

  • ENCODE()和DECODE()

ENCODE(str, pass_str):该函数使用pass_str作为密码来加密字符串str,其加密的结果可以通过DECODE()函数来解密。该函数返回的结果是一个同str等长。 DECODE(crypt_str, pass_str):该函数使用pass_str作为密码来解密使用ENCODE()加密后的字符串crypt_str。

  • DES_ENCRYPT()和DES_ENCRYPT()

DES_ENCRYPT(str[, {key_num|key_str}]):该函数使用三重DES算法连同给定的密钥来加密加密字符串。
DES_DECRYPT(crypt_str[, key_str]):该函数解密一个通过DES_ENCRYPT()加密的字符串,如果出现错误,该函数返回NULL。

  • COMPRESS()和UNCOMPRESS()

COMPRESS(string_to_compress):该函数压缩一个字符串并且返回一个二进制串。该函数需要MySQL已连同一个压缩库一块编译,比如zlib,否则该函数的返回值总为NULL。压缩后的字符串可以通过 UNCOMPRESS()函数来解压缩。UNCOMPRESS(string_to_uncompress):该函数解压缩一个通过COMPRESS() 函数压缩的字符串。如果变量不是一个压缩值,则结果返回为NULL。

  • PASSWORD()

PASSWORD(str):该函数用来加密存储在user表中 password列的MySQL密码。PASSWORD()函数由MySQL服务器中的认证系统使用,用户不应该在自己的应用中使用该函数。如果需要使用加密函数,可以考虑使用MD5()或者SHA1()来代替。

其加密结果示例如下:

MySQL 加密/压缩函数


在MySQL的系统数据库mysql的user表中,有一个名为Password的列,其中保存由password函数加密后的user的密码数据。如下所示:

MySQL 加密/压缩函数

  • ENCRYPT()

ENCRYPT(str[, salt]):该函数通过使用Unix crypt()系统调用来加密str,并返回一个二进制串。其中,salt变量应该是一个包含多于两个字符的字符串。如果salt没有给定,则使用一个随机值。如果crypt()系统调用在用户的操作系统上不可用(Windows操作系统便如此),该函数返回为NULL。

  • MD5()

MD5(str):该函数计算一个字符串的128位MD5校验和,返回的结果是由32个十六进制数字组成的二进制串。如果变量为NULL,则返回为NULL。

其加密结果示例如下:

MySQL 加密/压缩函数

  • SHA1()/SHA():

SHA1(str)/SHA(str)函数计算字符串str的160位SHA-1校验和。返回值是一个由40个十六进制数字组成的二进制串。如果变量为NULL,则返回NULL。

其加密结果示例如下:

MySQL 加密/压缩函数

标签:MySQL,加密,压缩
0
投稿

猜你喜欢

  • new_zeros() pytorch版本的转换方式

    2022-07-31 17:32:36
  • 如何用css制作有趣的按钮

    2008-03-17 13:54:00
  • 详解MySQL监控工具 mysql-monitor

    2024-01-25 23:03:16
  • Python网络请求模块urllib与requests使用介绍

    2021-07-21 12:23:38
  • Python环境下安装使用异步任务队列包Celery的基础教程

    2023-08-23 23:06:48
  • MYSQL数据库表设计与优化(二)

    2010-10-25 20:12:00
  • ASP trim,ltrim,rtrim 去前后空格 函数

    2011-03-03 10:39:00
  • JavaScript实现三种常用网页特效(offset、client、scroll系列)

    2023-08-27 11:54:30
  • python实现维吉尼亚加密法

    2023-06-12 23:19:21
  • 15个用户体验设计剖析

    2010-05-11 16:43:00
  • 交互设计师的尴尬-我的强项是什么?

    2008-12-29 14:00:00
  • Python 用三行代码提取PDF表格数据

    2023-10-08 18:54:57
  • 使用python实现对元素的长截图功能

    2023-11-20 10:27:44
  • 简单的淡入淡出图片轮换效果

    2009-05-22 18:38:00
  • 对Tensorflow中的矩阵运算函数详解

    2021-04-29 12:08:53
  • XHTML下,JS浮动代码失效的问题

    2024-05-28 15:37:51
  • MySQL学习之索引及优化

    2024-01-26 21:42:30
  • python爬虫之Appium爬取手机App数据及模拟用户手势

    2023-12-28 00:10:46
  • vue 下列表侧滑操作实例代码详解

    2024-04-30 10:19:36
  • JQuery获取表单值

    2009-11-19 13:17:00
  • asp之家 网络编程 m.aspxhome.com