您的位置:金沙游乐场85155 > 大数据库 > MySQL 金沙85155登入加密/压缩函数

MySQL 金沙85155登入加密/压缩函数

发布时间:2019-10-02 09:54编辑:大数据库浏览(50)

    转自:http://www.maomao365.com/?p=4732

    这些问题可能导致数据值的改变。一般而言,上述问题可能在你使用非二进制串数据类型(如char,varchar,text等数据类型)的情况下发生。

    一、mssql sql hashbytes 函数简介

    • AES_ENCRYPT()和AES_DECRYPT()

    hashbytes函数功能为:返回一个字符,
    通过 MD2、MD4、MD5、SHA、SHA1、SHA2_256、SHA2_512方式加密后的返回值

    AES_ENCRYPT()和AES_DECRYPT()可以加密/解密使用官方AES算法的数据。该算法使用128位密钥来编码,但用户可以将其扩展到256位。MySQL选用128位密钥,因为这样算法实现更快,而且对大多数用户而言它也足够安全了。

    hashbytes(‘参数1’,’参数2’)

    AES_ENCRYPT(str,key_str)函数加密一个字符串并返回一个二进制串。AES_DECRYPT(crypt_str, key_str) 函数可以解密使用官方AES(Advanced Encryption Standard)算法加密的数据并返回原有字符串,输入变量可以是任意长度。如果输入变量为NULL,那么该函数返回结果也为NULL。

    参数1:
    输入加密类型 例:MD5
    参数2:
    输入待加密的字符串(加密字符串最大值为 8000字节)
    返回值:
    返回值最大为8000字节
    注意事项:
    当输入加密类型,异常时,返回NULL

    因为AES是一个块级算法,需要使用补白来编码非偶数长度的字符串。

    二、mssql sql hashbytes 举例应用

    • ENCODE()和DECODE()

    例1:

    ENCODE(str, pass_str):该函数使用pass_str作为密码来加密字符串str,其加密的结果可以通过DECODE()函数来解密。该函数返回的结果是一个同str等长。 DECODE(crypt_str, pass_str):该函数使用pass_str作为密码来解密使用ENCODE()加密后的字符串crypt_str。

       DECLARE @info nvarchar(4000);  
    SET @info = CONVERT(nvarchar(4000),'www.maomao365.com');  
    SELECT HASHBYTES('SHA1', @info);   ---返回采用SHA1加密
    SELECT HASHBYTES('MD5', @info);    ---返回采用MD5加密
    SELECT HASHBYTES('MD2', @info);    ---返回采用MD2加密
    
    • DES_ENCRYPT()和DES_ENCRYPT()

    例2:

    DES_ENCRYPT(str[, {key_num|key_str}]):该函数使用三重DES算法连同给定的密钥来加密加密字符串。
    DES_DECRYPT(crypt_str[, key_str]):该函数解密一个通过DES_ENCRYPT()加密的字符串,如果出现错误,该函数返回NULL。

     

    • COMPRESS()和UNCOMPRESS()
         create table A(info1 varchar(30))
    
    insert into A (info1)values('www.maomao365.com')
    insert into A (info1)values('猫猫小屋')
    insert into A (info1)values('mssql教程专用')
    insert into A (info1)values('mssql函数用法简介') 
    
    select HASHBYTES('Md5',info1) as [md5加密], 
    HASHBYTES('SHA1',info1) as [SHA1加密],
    info1 from A 
    
    truncate table A
    drop table A 
    

    COMPRESS(string_to_compress):该函数压缩一个字符串并且返回一个二进制串。该函数需要MySQL已连同一个压缩库一块编译,比如zlib,否则该函数的返回值总为NULL。压缩后的字符串可以通过 UNCOMPRESS()函数来解压缩。UNCOMPRESS(string_to_uncompress):该函数解压缩一个通过COMPRESS() 函数压缩的字符串。如果变量不是一个压缩值,则结果返回为NULL。

     

    • PASSWORD()

    PASSWORD(str):该函数用来加密存储在user表中 password列的MySQL密码。PASSWORD()函数由MySQL服务器中的认证系统使用,用户不应该在自己的应用中使用该函数。如果需要使用加密函数,可以考虑使用MD5()或者SHA1()来代替。

    其加密结果示例如下:

    本文由金沙游乐场85155发布于大数据库,转载请注明出处:MySQL 金沙85155登入加密/压缩函数

    关键词: