小编Nat*_*son的帖子

使用 HASHBYTES() 对 nvarchar 和变量产生不同的结果

我使用服务器端散列来传输密码,然后在数据库中运行 PBKDF2 来存储散列密码 + 盐组合。

散列nvarchar(max)@variable持有相同值的HASHBYTES()函数会产生不同的结果。

DECLARE @hash NVARCHAR(MAX) = 'password5baa61e4c9b93f3f0682250b6'

SELECT HASHBYTES('SHA1', 'password5baa61e4c9b93f3f0682250b6') AS NVARCHAR_INPUT, 
       HASHBYTES('SHA1', @hash) AS VARIABLE_INPUT
Run Code Online (Sandbox Code Playgroud)

产生以下结果:

NVARCHAR_INPUT                             | VARIABLE_INPUT
0xA03BEF0E3EC96CC7C413C6646D3FEC6174DA530F | 0x74B55C42E1E0AB5C5CDF10B28567590B240355C3
Run Code Online (Sandbox Code Playgroud)

这是 SQL Server 2012。这个特定的数据库正在运行 SQL Server Express,所以我也很好奇这个问题是否与版本无关。

sql-server t-sql sql-server-2012 encoding hashing

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

从系统日志中恢复存储过程的参数

我正在尝试调试一个应用程序,我想在处理代码之前排除数据库错误。

我知道哪个存储过程负责处理我正在查看的数据,但是在此数据库上没有设置日志记录或任​​何跟踪。有没有办法使用现有的系统日志恢复传递给该过程的参数?

我看: dm_exec_procedure_statsfn_dblog,但他们似乎并没有把我需要什么。

我正在设置日志记录。

sql-server ssms t-sql

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

标签 统计

sql-server ×2

t-sql ×2

encoding ×1

hashing ×1

sql-server-2012 ×1

ssms ×1