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

slappasswd生成SHA256哈希异常:与openssl及旧版本slapd不一致问询

slappasswd 2.5.13生成的SHA256哈希与其他程序/版本不一致的原因

在Ubuntu 22.10使用slapd 2.5.13+dfsg-1ubuntu1时,slappasswd生成的SHA256密码哈希与openssl dgst结果不一致:

$ slappasswd -s secret -h '{SHA256}' -o module-path=/usr/lib/ldap -o module-load=pw-sha2 
{SHA256}WIrrpN3OjEVOUf6yrH1j+o+ODuUuNBo979Od4UXnu54=
$ echo -n "secret" | openssl dgst -sha256 -binary | openssl enc -base64
K7gNU3sdo+OL0wNhqoVWhr3g6s1xYv72ol/pe/Unols=

但SHA1哈希两者结果一致:

$ slappasswd -s secret -h '{SHA}' -o module-path=/usr/lib/ldap -o module-load=pw-sha2 
{SHA}5en6G6MezRroT3XKqkdPOmY/BfQ=
$ echo -n "secret" | openssl dgst -sha1 -binary | openssl enc -base64
5en6G6MezRroT3XKqkdPOmY/BfQ=

而Ubuntu 20.04的slapd 2.4.49+dfsg-2ubuntu1.9版本中,slappasswd生成的SHA256哈希与openssl结果一致:

$ slappasswd -s secret -h '{SHA256}' -o module-path=/usr/lib/ldap -o module-load=pw-sha2
{SHA256}K7gNU3sdo+OL0wNhqoVWhr3g6s1xYv72ol/pe/Unols=
$ echo -n "secret" | openssl dgst -sha256 -binary | openssl enc -base64
K7gNU3sdo+OL0wNhqoVWhr3g6s1xYv72ol/pe/Unols=

原因分析

  • 加盐哈希的默认行为变更
    slapd 2.5版本对{SHA256}格式的处理逻辑做了调整:默认会为生成的SHA256哈希添加随机盐值,而slapd 2.4版本以及openssl执行的命令都是直接计算无盐的SHA256哈希,这是结果不一致的核心原因。
  • SHA1无差异的原因
    对于{SHA}格式,slapd的新旧版本都保持了无盐哈希的行为,所以和openssl dgst -sha1的结果始终一致。
  • 验证无盐哈希的方法
    若要让slapd 2.5生成与openssl一致的无盐SHA256哈希,可显式指定空盐值:
    slappasswd -s secret -h '{SHA256}' -o module-path=/usr/lib/ldap -o module-load=pw-sha2 -o salt=
    
    执行后生成的哈希会与openssl结果完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 14:45:55