这些问题可能导致数据值的改变。一般而言,上述问题可能在你使用非二进制串数据类型(如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的user表中,有一个名为Password的列,其中保存由password函数加密后的user的密码数据。如下所示:

ENCRYPT()

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

MD5()

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

其加密结果示例如下:

SHA1()/SHA():

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

其加密结果示例如下:

本文标题: MySQL 加密/压缩函数

本文地址: http://www.cppcns.com/shujuku/mysql/53884.html

mysql数据压缩加密_MySQL 加密/压缩函数相关推荐

  1. mysql sql 工资加密_MYSQL 加密SQL

    INSERT INTO table1 (user, pw) VALUE ('user1', MD5('password1') ) INSERT INTO table1 (user, pw) VALUE ...

  2. mysql 密码大小写_MySQL数据库加密和解密~认证登陆密码(mysql.user)和MySQL不区分大小写...

    MySQL数据库认证密码有两种方式: 1:MySQL 4.1版本之前是MySQL323加密 2:MySQL 4.1和之后的版本都是MySQLSHA1加密 还有函数:AES_ENCRYPT()加密函数和 ...

  3. MYSQL数据库密码的加密方式及破解方法

    转自http://hi.baidu.com/davice_li/blog/item/5f5b470be3307e32b0351db5.html MySQL数据库用户密码跟其它数据库用户密码一样,在应用 ...

  4. 详解MYSQL数据库密码的加密方式及破解方法(1)

    转自 http://hi.baidu.com/davice_li/blog/item/5f5b470be3307e32b0351db5.html MySQL数据库用户密码跟其它数据库用户密码一样,在应 ...

  5. MySQl数据库使用AES加密解密配Java代码使用

    MySQl数据库加密解密 待加密字段varchar INSERT INTO base_info(id,school_db_host) VALUES('1111254',HEX(AES_ENCRYPT( ...

  6. mysql tls_mysql8 参考手册--加密连接TLS协议和密码

    支持的连接TLS协议 MySQL支持使用TLSv1,TLSv1.1,TLSv1.2和TLSv1.3协议的加密连接,这些协议按从低到高的顺序列出.实际允许连接的协议集受多种因素影响: MySQL配置.可 ...

  7. mysql aes256_pl/sql:aes256加密解密

    调用相应的API对BLOB数据 相应的加密和解密 PL/SQL 加密解密 --加密function encrypt_aes256 (p_blob in blob, p_key in varchar2) ...

  8. mysql函数大全最小,MySQL函数一览_MySQL函数全部汇总

    前言 MySQL提供了众多功能强大.方便易用的函数,使用这些函数,可以极大地提高用户对于数据库的管理效率,从而更加灵活地满足不同用户的需求.本文将MySQL的函数分类并汇总,以便以后用到的时候可以随时 ...

  9. mysql主程序目录_MySQL™ 参考手册(目录)

    MySQL™ 参考手册 此文档分别记录了MySQL 8.0到8.0.19,以及基于NDB 8.0版到8.0.18-ndb-8.0.18的NDB Cluster版本.它可能包括尚未发布的MySQL版本功 ...

最新文章

  1. 当代新青年,在看什么书?|主题书单揭晓
  2. selector + drawable 多状态图形
  3. SQL Server 2008不能修改表的解决方法
  4. boost::hana::reverse_partial用法的测试程序
  5. spectral安装
  6. PID控制器开发笔记之五:变积分PID控制器的实现
  7. java导出excel_java按需导出Excel并自动合同单元格
  8. Perl 标量的操作符
  9. 梦幻西游端游脚本制作教程
  10. CSS中文字体对照表
  11. apk部分手机安装失败_安卓手机安装软件失败的4种常见原因和解决办法
  12. 解决:在 VSCode 中如何设置默认的浏览器为Chrome或Firefox
  13. Cisco IGRP
  14. HTML送朋友的唯美新年贺卡/祝福贺卡/生日礼物/情人节礼物
  15. 【技术邻】基于DynaForm的多工步连续模(级进模)分析实例
  16. java中ofd文件转pdf_OFD版式文档Java开发组件(iOFD)
  17. Redmi AC2100通过ssh安装Breed
  18. 在线升级R语言版本以及在RStudio容纳最新版本的R
  19. buuctf old-fashion 1 世上无难事
  20. 成都自传-MoccA and 555

热门文章

  1. DevOps 和SRE 的十大开源项目
  2. Spring Boot 2.x基础教程:JdbcTemplate的多数据源配置
  3. Spring Cloud 2020 年路线图:二季度Spring Boot 2.3、四季度Spring Cloud Ilford
  4. php基础知识手册,PHP基础知识(三)
  5. php vsftpd文件上传类,php ftp文件上传函数(基础版)
  6. 用java调用oracle存储过程总结
  7. 单目深度估计学习笔记
  8. 透明物体分割学习笔记
  9. 点云三维重建有关原理
  10. 最强无监督行人重识别方法 Cluster Contrast ReID,rank-1 94.6%