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

LDAP中userPassword属性工作原理及SSHA盐值获取疑问

LDAP SSHA密码验证的盐值问题
  • 核心结论:盐值就存在userPassword属性的存储值里,不需要单独存储或传递

SSHA的存储格式是固定规则:{SSHA}前缀后跟着一段Base64编码字符串,这段字符串是明文密码加盐值的SHA-1哈希结果与随机盐值直接拼接后,再做Base64编码的产物。

实际验证流程是这样的:

  1. 用户输入明文密码后,应用(或LDAP服务器)从用户条目中取出userPassword的值,比如{SSHA}Xr4ilOzQ4PCOq3aQ0qbuaQ5N4zIuW+7u
  2. 去掉{SSHA}前缀,对剩余的Base64字符串解码得到二进制数据——前20字节是SHA-1哈希结果,剩下的部分就是当初生成的随机盐值
  3. 把用户输入的明文密码和提取出的盐值拼接,再做一次SHA-1哈希运算
  4. 将新生成的哈希结果和存储的哈希结果对比,一致则认证通过

另外补充个常见实践:大多数场景下应用不会自己做上述验证操作,而是直接调用LDAP的**Bind(绑定)**接口,把用户输入的明文密码传给LDAP服务器,由服务器完成盐值提取、哈希对比的全流程,应用只需要接收服务器返回的认证结果即可。这种方式能避免应用接触敏感的密码哈希和盐值,安全性更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 12:07:02