SQL将原始数据进行MD5加密转存
先来描述下情况吧,首先有一批用户之前批量录入后默认的密码为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加密转存的更多相关文章
- 一个简单的后台与数据库交互的登录与注册[sql注入处理,以及MD5加密]
一.工具: vs2013[因为我现在用的也是2013,版本随便你自己开心] sql2008[准备过久升级] 二.用到的语言: HTML+CSS+Jquery+Ajax+sqlserver HTML[相 ...
- Sql 数据库 用户密码MD5加密
直接给代码先 DECLARE @TAB TABLE( NAEM VARCHAR(50) ) DECLARE @PA VARCHAR(50) DECLARE @A VARCHAR(10) SET @A= ...
- sql server 内置MD5加密函数
http://blog.csdn.net/rookie_liu_ToFly/article/details/53116932 select right(sys.fn_VarBinToHexStr(HA ...
- ASP.NET会员注册登录模块(MD5加密,Parameters防止SQL注入,判断是否注册)
MD5加密,Parameters防止SQL注入: protected void btnLog_Click(object sender, EventArgs e) { //获取验 ...
- Sql Server内置函数实现MD5加密
实例 MD5加密“123456”: HashBytes('MD5','123456') 结果:0xE10ADC3949BA59ABBE56E057F20F883E (提示:看完最后,结果要进行转换.) ...
- 关于Sql server数据 MD5加密
最近在写一个web项目时,需要在数据库中将用户密码等一类信息进行加密处理.数据加密算法有许多 ,各有各的优缺点;在 http://www.cnblogs.com/yangywyangyw/arch ...
- 总结Sql Server内置函数实现MD5加密
--MD5加密 --HashBytes ('加密方式', '待加密的值') --加密方式= MD2 | MD4 | MD5 | SHA | SHA1 --返回值类型:varbinary(maximum ...
- sql server用户密码批量MD5加密
nodejs自带加密模块md5加密: var crypto = require('crypto'); function cryptoMD5(content){ var md5 = crypto.cre ...
- SQL Server 内置函数实现MD5加密
一.MD5加密 HASHBYTES ('加密方式', '待加密的值') 加密方式= MD2 | MD4 | MD5 | SHA | SHA1 返回值类型:varbinary(maxim ...
随机推荐
- 2019.01.04 洛谷P4719 【模板】动态dp(链分治+ddp)
传送门 ddpddpddp模板题. 题意简述:给你一棵树,支持修改一个点,维护整棵树的最大带权独立集. 思路: 我们考虑如果没有修改怎么做. 貌似就是一个sbsbsb树形dpdpdp,fi,0f_{i ...
- hdu6444 2018中国大学生程序设计竞赛 - 网络选拔赛 1007 Neko's loop
Neko's loop Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others) Total S ...
- Router pipeline
from 2013-HPCA-Breaking the On-Chip Latency Barrier Using SMART book_Principles and Practices of Int ...
- jquery页面隐藏和展开之间切换
html页面: <p id="myp4">默认情况下,这段话是隐藏的,点击按钮以后,这段话就展开,并且按钮上的值改变</p> <button id=& ...
- 使用 alt_disk_copy 克隆 rootvg
地址:http://www.ibm.com/developerworks/cn/aix/library/au-alt_disk_copy/ 简介 大多数系统管理员都遇到过以下情况: 一次 ML 升级失 ...
- MV人物抹去
填充为背景 Music Video is one type of Video Processing.视频剪辑反向复原:视频图像分类:TensorFlow图像分类教程 改起个什么名字 视频分类数据集 ...
- Navicat连接mysql8.0.1版本出现1251--Client does not support authentication protocol requested by server的解决
转载自:https://blog.csdn.net/XDMFC/article/details/80263215 好不容易安装好mysql,但又出现了mysql客户端版本太低的问题.根据参考的这篇博客 ...
- CSS 基础 例子 Image 高度设置
body高度100%,三个image高度分别为auto,50%,60%,imge高度为当时body高度的百分比,auto时为原始高度 html代码如下: <!DOCTYPE html> & ...
- MFC中处理UI界面时的注意点
最近开发时,在处理界面上遇到了下面的问题: 上位机与下位机通信时,如果出现超时,弹出MessageBox提示的情况下,更新界面上的CStatic控件会出现重影. 经过调查发现 原因是由于在UI线程中处 ...
- unigui如何把webApp的子功能映射到微信公众号菜单
只需要用UniApplication.Parameters.Values[‘xxx’]读取url的参数然后调用就可以 例如:要打开公众号菜单的取样送检指南查询模块,在自定义菜单设定:http://ww ...