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