先来描述下情况吧,首先有一批用户之前批量录入后默认的密码为6个8然后进行MD5加密后进行存储的,现在需要对其更改根据用户身份证号后6位作为密码。

1.首先发现我们sqlserver05以上的版本是自带了MD5加密方法的,然后我们对其验证其加密后的数据跟用.net自带的MD5加密方法加密后是否相同。

SQLserver中取MD5方法:select HASHBYTES('MD5','888888')

结果为发现是16进制的与我们所需要的是不太一样的。

进行内置转换并截取形成我们所需要的MD5加密后的数据结果为

然后我们到.net中进行测试加密数据查看加密后的是否符合

发现与我们在SQL中进行加密的值相同,说明两者的加密方法一致的。

2.下来我们就到数据库里去操作啦!

执行update操作后到系统里检查后发现不对上不去。

又回到数据库中进行检查。(检索下看是否一致,这边由于用户名便是身份证号(USERID)所以取表的userid再进行截取后6位再进行加密处理)

select top 10 substring(sys.fn_sqlvarbasetostr(HASHBYTES('MD5',substring(UserID,LEN(UserID)-5,6))),3,32),substring(UserID,LEN(UserID)-5,6),UserID from db_owner.SystemUser where db_owner.SystemUser.RoleGuid=25

发现从数据库里截取后再进行加密与我们手动输入的值加密后的结果不同。

后来发现我们存储USERID时候用的是nvarchar类型,此时实则个字节占的位数是实际的两倍。由于这个原因导致加密后的值不同。

后将其转为varchar后进行测试

select top 10 substring(sys.fn_sqlvarbasetostr(HASHBYTES('MD5',cast(substring(UserID,LEN(UserID)-5,6) as varchar(100)))),3,32),substring(UserID,LEN(UserID)-5,6),UserID from db_owner.SystemUser where db_owner.SystemUser.RoleGuid=25

发现与我们期望的结果相同了。

SQL将原始数据进行MD5加密转存的更多相关文章

  1. 一个简单的后台与数据库交互的登录与注册[sql注入处理,以及MD5加密]

    一.工具: vs2013[因为我现在用的也是2013,版本随便你自己开心] sql2008[准备过久升级] 二.用到的语言: HTML+CSS+Jquery+Ajax+sqlserver HTML[相 ...

  2. Sql 数据库 用户密码MD5加密

    直接给代码先 DECLARE @TAB TABLE( NAEM VARCHAR(50) ) DECLARE @PA VARCHAR(50) DECLARE @A VARCHAR(10) SET @A= ...

  3. sql server 内置MD5加密函数

    http://blog.csdn.net/rookie_liu_ToFly/article/details/53116932 select right(sys.fn_VarBinToHexStr(HA ...

  4. ASP.NET会员注册登录模块(MD5加密,Parameters防止SQL注入,判断是否注册)

    MD5加密,Parameters防止SQL注入: protected void btnLog_Click(object sender, EventArgs e)     {         //获取验 ...

  5. Sql Server内置函数实现MD5加密

    实例 MD5加密“123456”: HashBytes('MD5','123456') 结果:0xE10ADC3949BA59ABBE56E057F20F883E (提示:看完最后,结果要进行转换.) ...

  6. 关于Sql server数据 MD5加密

    最近在写一个web项目时,需要在数据库中将用户密码等一类信息进行加密处理.数据加密算法有许多  ,各有各的优缺点;在  http://www.cnblogs.com/yangywyangyw/arch ...

  7. 总结Sql Server内置函数实现MD5加密

    --MD5加密 --HashBytes ('加密方式', '待加密的值') --加密方式= MD2 | MD4 | MD5 | SHA | SHA1 --返回值类型:varbinary(maximum ...

  8. sql server用户密码批量MD5加密

    nodejs自带加密模块md5加密: var crypto = require('crypto'); function cryptoMD5(content){ var md5 = crypto.cre ...

  9. SQL Server 内置函数实现MD5加密

    一.MD5加密 HASHBYTES ('加密方式', '待加密的值')     加密方式= MD2 | MD4 | MD5 | SHA | SHA1     返回值类型:varbinary(maxim ...

随机推荐

  1. MySQL批量修改表前缀

    error_reporting(0); $old_pre = 'tdr_'; // 原表前缀 $new_pre = 'db_'; // 新表前缀 // 配置连接 $db = new mysqli('1 ...

  2. 下载编译安装Apache HTTP Server 2.4.23以及配置HTTP/HTTPS反向代理

    http://blog.csdn.net/gangchengzhong/article/details/52910225 [注意,在编译make时出现的错误并不是文章中说的openssl的版本问题,而 ...

  3. 如何使用vs进行代码比较

    当我们在进行团队合作开始项目时,有时候不仅自己要写代码还需要修改bug,当我们修改代码以后,为了保持代码库中代码的整洁美观和一直性,有些误操作,比如多一个或多个空格,多一行,少一行,格式对齐等,这样的 ...

  4. WebGIS实现在线要素编辑之ArcGIS Server 发布Feature Service 过程解析

    WebGIS实现在线要素编辑之ArcGIS Server 发布Feature Service 过程解析 FeatureService也称要素服务,其最大的好处就是支持在线要素编辑,并将编辑同步更新到后 ...

  5. HtmlControls和Webcontrols命名空间的区别

    HtmlControls(以下简称HC)是对大部分Html标签的复制,这些标签原来是什么样,经过服务器解释后的HC就是什么样.要使用HC,只需要在相应的html标签内加上runat=“server”属 ...

  6. Linux安装Oracle 11g Grid Infrastructure 出现OUI-10182错误解决办法

      已确保安装的ORACLE_BASE目录是属于grid:oinstall 但安装时总是报:OUI-10182 The effective user ID does not match the own ...

  7. MIT Molecular Biology 笔记5 转录机制

    视频  https://www.bilibili.com/video/av7973580?from=search&seid=16993146754254492690 教材 Molecular ...

  8. POJ1065--Wooden Sticks(动态规划)

    There is a pile of n wooden sticks. The length and weight of each stick are known in advance. The st ...

  9. POJ3692 Kindergarten

    Kindergarten Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 6882   Accepted: 3402 Desc ...

  10. 9.js入门

    1.Js介绍 ◆js是一款运行在客户端的网页编程语言. ◆组成部分 ★ecmascript js标准 ★dom 通过js操作网页元素 ★bom 通过api操作浏览器 ◆特点 ★简单易用 ★解释执行 ★ ...