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');

  • 相关阅读:
    JS 数字时钟的代码(摘录,忘了是从哪了)
    数据写入DataTable C# 2005
    C# 进制转化问题测试下再说(网上的直接转化不好用)
    防sql 注入,就是将sql 的执行命令给排除
    今天研究了一下午网站窄屏/宽屏的切换实现
    解决VS2005下中文输入法全角半角混乱的补丁
    一些实用的站长查询工具
    UE(用户体验)无处不在,留心处处皆学问
    添加了方便聚合的链接
    该好好整理一下自己了
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/4240986.html
Copyright © 2011-2022 走看看