sqlserver 中HASHBYTES 加密方法,两次生成不一样 解决方案

本文探讨了在SQL中使用HASHBYTES函数对字符串'123'进行MD5哈希时,由于数据类型的不同(varCHAR和NvarCHAR)导致的哈希结果差异。即使字符串内容相同,不同类型也会产生不同的哈希值,提示我们在处理哈希时需要注意数据类型的一致性。
摘要由CSDN通过智能技术生成
SELECT HASHBYTES('MD5','123'),HASHBYTES('MD5',CONVERT(varCHAR(4), '123')),HASHBYTES('MD5',CONVERT(NvarCHAR(4), '123'))

这段代码输出结果是

0x202CB962AC59075B964B07152D234B70    

0x202CB962AC59075B964B07152D234B70    

0x5FA285E1BEBE0A6623E33AFC04A1FBD5

因为类型不同,所有生成结果不同,哪怕你是同一个字符串都进行MD5,所以当你发现两次结果不同,检查下数据类型,是否相同

EasyPlat.Net快速开发平台源码 源码描述: 功能介绍: EasyPlat.Net提供基于DATASET的三层结构,可以通过直接使用BizSQL进行两层开发。包含账号、角色、权 限,菜单管理;导入、导出、打印、加密方法;公共字典、XML字典使用;多种打印、导入导出、图表支持, 日志记录等。 用户可以在此基础上7天之内完成快速开发企业实用的系统, 一行代码插入数据,一行代码更新数据等不用写大 部分代码。(Winxp/Win7+MS SQL2005/2008+VS2010+.NetFramework4+C#)。 注意: 开发环境为Visual Studio 2010,数据库为SQL Server 2005,数据库文件在DB_51aspx文件夹附加就行。 默认管理员登录名密码为:admin 123 更新历史 2013-08-03 1:在数据库表增加超级用户 root,admin 删除 APP_DATA目录下的SpecUser.xml 删除 SysIndex目录下的OpenRootFace.aspx 增加数据库表 Sys_Admin CREATE TABLE [dbo].[Sys_Admin]( [RtID] [int] IDENTITY(1,1) NOT NULL, [Name] [varchar](30) COLLATE Chinese_PRC_CI_AS NOT NULL, [Pwd] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL, [Statu] [char](1) COLLATE Chinese_PRC_CI_AS NULL CONSTRAINT [DF_Sys_Root_Statu] DEFAULT ('Y'), CONSTRAINT [PK_Sys_Root] PRIMARY KEY CLUSTERED ( [RtID] ASC )WITH (PAD_INDEX = OFF, IGNORE_DUP_KEY = OFF) ON [PRIMARY] ) ON [PRIMARY]; ---MD5密码123 自己在数据库修改为自己保密的密码,此3个账号之外不可增加其 insert Sys_Admin (name,pwd) values ('root','5fa285e1bebe0a6623e33afc04a1fbd5'); insert Sys_Admin (name,pwd) values ('admin','5fa285e1bebe0a6623e33afc04a1fbd5'); insert Sys_Admin (name,pwd) values ('xiao','5fa285e1bebe0a6623e33afc04a1fbd5'); 2:解决超级用户登录增操作菜单管理,提示没有超级用户权限 3:增加MD5加密字符串和执行SQL语句界面 ModSystem/RootTools.aspx 注册菜单分配权限即可使用 4:增加初始化存储过程 sp_ClearDb
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值