• 欢迎访问交通人网站!
  • 分享一款小游戏:信任的进化
  •    发表于8年前 (2017-08-23)  热点资讯 |   抢沙发  695 
    文章评分 0 次,平均分 0.0

    MD5 是一种常用的字符串加密方法,在 SQL Server 中可以使用函数 HashBytes() 实现 MD5 加密,具体说明如下:

    [table id=1 /]

    例如,使用 MD5 加密字符串 “123456”:

    HashBytes('MD5','123456')
    --返回值:0xE10ADC3949BA59ABBE56E057F20F883E

    不过 HashBytes() 的返回值与 MD5 加密值还有一些不同,需要继续调用 sys.fn_sqlvarbasetostr() 函数进行转换,完整的 SQL 语句如下:

    select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5','123456')),3,32)
    --返回值:e10adc3949ba59abbe56e057f20f883e

    转换之后的返回值就与第三方网站的 MD5 加密结果相同了。

    使用 SQL Server 内置函数实现 MD5 加密的注意事项

    不过需要注意的是,在使用以上方法进行 MD5 加密时,务必统一待加密字符串的类型。

    因为从下面的示例来看,不同类型的字符串可能返回不同的加密结果。

    select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5','123456')),3,32)
    --返回值:e10adc3949ba59abbe56e057f20f883e
    select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5',CONVERT(CHAR(50),'123456'))),3,32)
    --返回值:3bffa23c33da54eaa362f6f69879eb25
    select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5',CONVERT(VARCHAR(50),'123456'))),3,32)
    --返回值:e10adc3949ba59abbe56e057f20f883e
    select substring(sys.fn_sqlvarbasetostr(HashBytes('MD5',CONVERT(NVARCHAR(50),'123456'))),3,32)
    --返回值:ce0bfd15059b68d67688884d7a3d3e8c
     

    除特别注明外,本站所有文章均为交通人原创,转载请注明出处来自http://www.hijtr.com/sql-server-md5/

    交通人博客是交通人工作室(JTR Studio)建立的交通人系列网站之一,是交通人工作室的主阵地,旨在整合和分享交通行业相关资讯,具体包括但不限于行业新闻、行业动态,以及行业相关规范、书籍、报告和软件等资源。

    发表评论

    表情 格式

    暂无评论

    
    切换注册

    登录

    忘记密码 ?

    切换登录

    注册

    扫一扫二维码分享