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

其加密结果示例如下:

最新文章

  1. 你真的会玩SQL吗?冷落的Top和Apply
  2. Zend Framework 1 - Quick Start
  3. iOS-----Crash文件分析(一)
  4. GitHub学习心得之 分支操作
  5. java web filter 学习(2)
  6. 对tomcat中使用反射加载类的理解
  7. 优化定时器NSTimer-runloop使用
  8. SQL——系统函数
  9. 7件你不知道但可以用CSS做的事
  10. Codeforces Round #313 (Div. 1) B. Equivalent Strings DFS暴力
  11. JavaScript中数组操作
  12. Windows下memcache安装使用
  13. Android APP开发需求文档范本
  14. ubuntu输入某个目录测试该目录里.C文件里代码行数shell脚本
  15. Android 深入理解Loader机制 让APP轻装上阵
  16. Android使用统计图AChartEngine 来展示数据
  17. OO第二单元电梯线程系列总结作业
  18. hibernate的理解
  19. 重启tomcat服务操作
  20. WebAPI框架里设置异常返回格式统一

热门文章

  1. SharePoint中获取当前登录的用户名几种方式
  2. ViewState探索
  3. ASP.Net中的编码与解码
  4. MeasureSpec学习
  5. iptables里filter表前面几个数字的意思
  6. SQL用row_number进行高速循环
  7. Objective-C学习篇08—NSDictionary与NSSet
  8. [每日一题] OCP1z0-047 :2013-07-24 子查询――外查询与内查询的执行顺序
  9. NGINX关于配置PATHINFO
  10. php加密解密实用类