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.19 codeforces915E.Physical Education Lessons(ODT)
传送门 ODT水题(当然可以上线段树) 支持区间01覆盖,询问全局1的个数. 思路:直接上ODTODTODT. 不会的点这里 代码: #include<bits/stdc++.h> #de ...
- dj 用户认证组件
auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,主要的三个: 1.1 authenticate() 提供了用户认证 ...
- MIT Molecular Biology 笔记7 调控RNA
视频 https://www.bilibili.com/video/av7973580/ 教材 Molecular biology of the gene 7th edition J.D. Wat ...
- day17(tomcat的安装,HTTP)
Tomcat Tomcat是个小型服务器,由apache组织编写,转为发布java程序而写. 安装步骤: 官网:http://tomcat.apache.org/ 下载地址:http://tomcat ...
- MySQL数据库与表的增删改查
1.值库管理 1.1 查询所有值库 show databases; 1.2 创建一个值库 create database 值库名称 default character set 编码格式名称; 1.3 ...
- Java方法、构造方法的重载;创建对象;调用方法
方法的重载 概念:多个同名但是不同参数的方法称为方法的重载 作用:编译器会根据调用时传递的实际参数自动判断具体调用的是哪个重载方法 特点:方法名相同:同一作用域:参数不同:数量不同 类型不同 顺序不同 ...
- POJ3176 Cow Bowling 2017-06-29 14:33 23人阅读 评论(0) 收藏
Cow Bowling Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 19173 Accepted: 12734 Des ...
- Java中sleep()与wait()区别(涉及类锁相关概念)
在区别之前,我们首先先了解一下关于对象锁,类锁的相关概念(当时查阅的详细地址:http://www.importnew.com/20444.html,该作者对类锁和对象锁进行了详细的举例分析) 对象锁 ...
- bootstrap阶段测验【答案】
<!DOCTYPE html><html> <head> <meta charset="utf-8" /> <title> ...
- django创建分页
前台html代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset=" ...