MySQL 加密/压缩函数

这些问题可能导致数据值的改变。一般而言,上述问题可能在你使用非二进制串数据类型(如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。

其加密结果示例如下:

时间: 2024-10-29 04:27:51

MySQL 加密/压缩函数的相关文章

MySQL加密解密

加密: HEX(AES_ENCRYPT('123', 'andy')) 解密: AES_DECRYPT(UNHEX('CED4D1B547C01B4475426D8A7D3314C8'),'andy') 其中:'andy'是密钥. MySQL加密解密

MYSQL 加密函数的用法

常见加密函数有md5,hash,password等,mysql应用web一般都是md5,32位的,下面讲将MYSQL 加密函数的用法. 1,md5加密用法 select md5('admin'); 2,password 加密 一般用数据库的管理的 password('admin') 应用于客户端 set password=password('dc3688') 文章来自 http://www.dc3688.com/ 原文地址:http://blog.51cto.com/13959155/22942

mysql加密解密方式用法

如果你使用的正是mysql数据库,那么你把密码或者其他敏感重要信息保存在应用程序里的机会就很大.保护这些数据免受黑客或者窥探者的获取是一个令人关注的重要问题,因为你既不能让未经授权的人员使用或者破坏应用程序,同时还要保证您的竞争优势.幸运的是,MySQL带有很多设计用来提供这种类型安全的加密函数.本文概述了其中的一些函数,并说明了如何使用它们,以及它们能够提供的不同级别的安全. 就让我们从最简单的加密开始:双向加密. 在这里,一段数据通过一个密钥被加密,只能够由知道这个密钥的人来解密.MySQL

mysql 加密

-- md5 32位 sha1 40位 它们都是,单项加密SELECT MD5('admin'),SHA1('admin'),PASSWORD('aaa'); -- uuid 36位16进制的全球唯一字符串SELECT UUID(),LENGTH(UUID()); SELECT UUID(); SELECT FORMAT(12380362,2); -- 将ip地址转换为数字 最好是整型无符号 int unsignedSELECT INET_ATON('192.168.1.2'); -- 将数字表

mysql 加密解密函数

http://blog.csdn.net/wh62592855/article/details/6777753 mysql下的加密函数有如下几个 PASSWORD():创建一个经过加密的密码字符串,适合于插入到MySQL的安全系 统.该加密过程不可逆,和unix密码加密过程使用不同的算法.主要用于MySQL的认证系统. ENCRYPT(,):使用UNIX crypt()系统加密字符串,ENCRYPT()函数接收要加密的字符串和(可选的)用于加密过程的salt(一个可以唯一确定口令的字符串,就像钥

mysql 加密连接SSL

1.SSL含义 SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议.TLS与SSL在传输层对网络连接进行加密. 2.mysql5.7SSL配置和使用 注意:这种方法只使用5.7,mysql5.6也支持ssl加密连接,但是配置过程比较复杂,需要用到openssl命令来创建各类共秘钥. 我的测试环境默认没有启用SSL,状态为disabled mysql> sho

MySQL加密

MySQL字段加密和解密 1.加密:aes_encrypt('admin','key') 解密:aes_decrypt(password,'key') 2.双向加密 通过密钥去加密,解密的时候的只有知道这个密钥的人来解密 加密:encode() 解密:decode() eg:encode('123456' 'adfdgfdhggfh'); decode(password,'adfdgfdhggfh'); 3.PASSWORD('123456') password加密是不可逆转的 4.MD5('1

mysql加密和解密

MySQL 4.1版本之前是MySQL323加密,MySQL 4.1和之后的版本都是MySQLSHA1加密, (1)以MySQL323方式加密 select  old_password('111111'); (2)以MySQLSHA1方式加密 select password('111111'); MYSQL323加密中生成的是16位字符串,而在MySQLSHA1中生存的是41位字符串,其中*是不加入实际的密码运算中,通过观察在很多用户中都携带了"*",在实际破解过程中去掉"*

MySQL加密的性能测试

这是对MySQL进行加密性能测试的两篇文章系列之二.在第一篇中,我专门使用MySQL的内置的对SSL的支持来 做压力测试,产生了一些令人惊讶的结果. AD:WOT2015 互联网运维与开发者大会 热销抢票 这是对MySQL进行加密性能测试的两篇文章系列之二.在第一篇中,我专门使用MySQL的内置的对SSL的支持来 做压力测试,产生了一些令人惊讶的结果.当然,使用SSL查询的吞吐性能要比不使用SSL的性能低这也在意料之中,但是我相当惊讶的是,主要的性能瓶颈是 花费在连接建立的时间.这个结果自然引导