相关疑难解决方法(0)

TSQL md5哈希与C#.NET md5不同

我生成了一个md5哈希,如下所示:

DECLARE @varchar varchar(400) 

SET @varchar = 'è'

SELECT CONVERT(VARCHAR(2000), HASHBYTES( 'MD5', @varchar ), 2)
Run Code Online (Sandbox Code Playgroud)

哪个输出:

785D512BE4316D578E6650613B45E934
Run Code Online (Sandbox Code Playgroud)

但是使用以下方法生成MD5哈希:

System.Text.Encoding.UTF8.GetBytes("è")
Run Code Online (Sandbox Code Playgroud)

产生:

0a35e149dbbb2d10d744bf675c7744b1
Run Code Online (Sandbox Code Playgroud)

C#.NET方法中的编码设置为UTF8,我假设varchar也是UTF8,任何关于我做错的想法?

.net t-sql sql-server unicode encoding

16
推荐指数
1
解决办法
8617
查看次数

在SQL Server中使用HashBytes会返回DB的不同结果

我尝试在某个值上计算md5哈希值,但是得到了一个奇怪的结果.

我以两种不同的方式运行它:

SELECT HASHBYTES('md5',ZLA_PASSWORD),ZLA_PASSWORD, len(ZLA_PASSWORD) FROM ZLA_PASSWORD;

SELECT HASHBYTES('md5', '123456');
Run Code Online (Sandbox Code Playgroud)

我得到两个不同的结果,其中只有第二个有效:

0xCE0BFD15059B68D67688884D7A3D3E8C  123456  6
0xE10ADC3949BA59ABBE56E057F20F883E
Run Code Online (Sandbox Code Playgroud)

这是在SQL Server 2005上完成的.

在123456上检查MD5的结果与在线检查第二个结果相同.

有任何想法吗?

谢谢!

database sql-server-2005

1
推荐指数
1
解决办法
3192
查看次数

标签 统计

.net ×1

database ×1

encoding ×1

sql-server ×1

sql-server-2005 ×1

t-sql ×1

unicode ×1