You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VerifyHashedPassword()使用何种算法?对应HashBytes()应传什么算法?

匹配C# VerifyHashedPassword()的T-SQL算法说明

你提到的无需传入算法的VerifyHashedPassword(),是ASP.NET Identity框架中PasswordHasher<TUser>类的核心方法,它默认采用的是PBKDF2算法(基于SHA-256哈希函数)。

关键细节:

  • VerifyHashedPassword()不需要传入算法,是因为生成的哈希字符串本身已经包含了算法标识、盐值、迭代次数等元数据,方法会自动解析这些信息完成验证。
  • T-SQL的HashBytes()本身仅提供基础哈希计算,不支持PBKDF2的迭代加盐逻辑。如果要在T-SQL中实现与VerifyHashedPassword()一致的验证,不能直接用HashBytes()单独完成,需要额外处理:
    • 从现有哈希密码中提取盐值、迭代次数、算法标识(ASP.NET Identity的哈希格式为{算法标识}.{盐值Base64}.{哈希值Base64})
    • 使用HASHBYTES('SHA2_256', ...)配合循环迭代实现PBKDF2逻辑,或调用自定义CLR函数完成完整的PBKDF2计算

如果仅问对应底层哈希算法,传入'SHA2_256'是PasswordHasher默认配置下的基础哈希函数,但仅用HashBytes('SHA2_256', 明文密码)无法匹配现有哈希,必须结合盐值和迭代次数。

内容的提问来源于stack exchange,提问作者tharpa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 01:52:05