mysql md5 sha1_SQL Server 数据库中的 MD5 和 SHA1加密算法
MD5 和 SHA1 是一种单向加密算法,常用于密码的验证等需要加密操作的场合,在一般情况下,开发人员可以通过 Delphi 或 PHP 这类语言自己编写相关函数或者使用自带的函数,然后将加密过的结果根据需要存储到数据库中。
但在某些情况下,可能需要在数据库端计算 MD5 和 SHA1 哈希值,比如说在存储过程或自定义函数内部。开源数据库 MySQL就提供类似这样的内置函数,以下语句就可以分别显示字符串"12345"的 MD5 和 SHA1 值,返回结果为字符串型:
select md5('12345');
select sha1('12345');
但 SQL Server 中没有直接提供类似这样的函数。在 SQL Server 2000 中,如果需要加密可以使用未文档化的 pwdencrypt() 和 pwdcompare() 函数来加密数据和比较结果,加密方式是微软自己的算法,随着 SQL Server 版本的升级,函数的加密结果可能也会有所不同。
不过在 SQL Server 2005 中,微软提供了一个函数 hashbytes() 可以用来计算一个字符串的 MD5 和 SHA1 值,以下语句分别获得字符串 "12345” 的 MD5 和 SHA1:
select hashbytes('MD5′, '12345′) ;
select hashbytes('SHA1′, '12345′) ;
hashbytes() 函数的返回结果是 varbinary 型,也就是以 0x 开头 16 进制形式的二进制数据,不过通常情况下,我们需要的都是字符串型的数据,很多人首先想到的可能就是用 CAST 或 Convert 函数将varbinary 转换为 varchar,但这样转换后的结果会是乱码,正确转换 varbinary 可变长度二进制型数据到 16 进制字符串应该使用系统内置函数 sys.fn_VarBinToHexStr(),如下所示:
select sys.fn_VarBinToHexStr(hashbytes('MD5′, '12345′))
sys.fn_varBinToHexStr() 函数只在 SQL Server 2005 中有效,在 SQL Server 2000 中实现相同功能使用系统扩展存储过程:master..xp_varBinToHexStr 。
mysql md5 sha1_SQL Server 数据库中的 MD5 和 SHA1加密算法相关推荐
- mysql md5 sha1_SQL Server 数据库中的 MD5 和 SHA1
MD5 和 SHA1 是一种单向加密算法,常用于密码的验证等需要加密操作的场合,在一般情况下,开发人员可以通过 Delphi 或 PHP 这类语言自己编写相关函数或者使用自带的函数,然后将加密过的结果 ...
- SQL Server 数据库中的 MD5 和 SHA1加密算法
MD5 和 SHA1 是一种单向加密算法,常用于密码的验证等需要加密操作的场合,在一般情况下,开发人员可以通过 Delphi 或 PHP 这类语言自己编写相关函数或者使用自带的函数,然后将加密过的结果 ...
- SQL Server 数据库中的 MD5 和 SHA1
MD5 和 SHA1 是一种单向加密算法,常用于密码的验证等需要加密操作的场合,在一般情况下,开发人员可以通过 Delphi 或 PHP 这类语言自己编写相关函数或者使用自带的函数,然后将加密过的结果 ...
- mysql raiserror_RAISERROR在SQL Server数据库中的用法
raiserror 是由单词 raise error 组成 raise 增加; 提高; 提升 raiserror 的作用: raiserror 是用于抛出一个错误.[ 以下资料来源于sql ser ...
- mysql查询加伪列_SQL Server数据库中伪列及伪列的含义详解
SQL Server中的伪列 下午看QQ群有人在讨论(非聚集)索引的存储,说,对于聚集索引表,非聚集索引存储的是索引键值+聚集索引键值:对于非聚集索引表,索引存储的是索引键值+RowId,这应该是一个 ...
- mysql raiserror_sql server数据库中raiserror函数的用法
server数据库中raiserror的作用就和asp.NET中的throw new Exception一样,用于抛出一个异常或错误.这个错误可以被程序捕捉到. raiserror的常用格式如下: r ...
- mysql raiserror_sql server数据库中raiserror函数用法的详细介绍
sql server数据库中raiserror函数的用法 server数据库中raiserror的作用就和asp.NET中的throw new Exception一样,用于抛出一个异常或错误.这个错误 ...
- 如何在SQL Server数据库中加密数据
如何在SQL Server数据库中加密数据 为了防止某些别有用心的人从外部访问数据库,盗取数据库中的用户姓名.密码.信用卡号等其他重要信息,在我们创建数据库驱动的解决方案时,我们首先需要考虑的的第一条 ...
- ExcelToDatabase:批量导入Excel文件到MySQL/Oracle/SQL Server数据库的自动化工具
ExcelToDatabase:批量导入Excel到MySQL/Oracle/SQL Server数据库的自动化工具 简介 ExcelToDatabase 是一个可以批量导入excel到mysql/o ...
最新文章
- Python3 reversed 函数
- Crunch Bang(linux)安装Webstorm上手
- 颜宁强烈推荐:给研究生的四条金玉良言
- html 导航右侧弹出层,CSS导航栏及弹窗示例代码
- zabbix 2.2自动安装脚本
- 1121:计算矩阵边缘元素之和
- uctools.php,discuz 论坛UCenter无法登录,闪退的终极8种解决办法
- 图片延迟加载和滑动翻页
- Linux用户管理命令和压缩解压命令
- VS2017下的getch函数
- 令你的网站获得任意Google PR值的方法!
- winform程序:newtonsoft json 序列化时出现 “unterminated string. Excepted delimiter...
- PLC控制系统接地要求
- 社会工程学利用的人性_社会互程学利用的人性“弱点”
- 陕西师范大学第七届程序设计竞赛网络同步赛 D	ZQ的睡前故事(java)
- XBrowser增加Jslog日志对象接口
- 工具篇 | 获取邮箱的登陆授权码
- 响应式网站设计(2)-关于网站制作你不知道的那些文件儿
- 一种人机交互界面工效评价方法
- rtt 使用fal时出现找不到分区表问题