zoukankan      html  css  js  c++  java
  • 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');

  • 相关阅读:
    Linux 文件及目录管理命令基础
    MHA高可用及读写分离
    MySQL的备份和回复
    mysql的主从复制
    MySQL索引管理及执行计划
    [LeetCode]Linked List Cycle II解法学习
    浅谈reverse_iterator的base()函数
    [LeetCode]LRU Cache有个问题,求大神解答【已解决】
    分享一篇不错的博文《写给准备参加秋招的学弟学妹们~一定要来看哦~》
    将博客搬至CSDN
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/4240986.html
Copyright © 2011-2022 走看看