use*_*869 5 password ldap character-encoding base64
我们有一个存储密码和其他用户数据的 LDAP 服务器。
尽管服务器不用于客户端计算机的身份验证,但仅用于客户端应用程序的身份验证。
所以用户在他们的客户端本地更改他们的密码。
只要我们使用 crypt,我就可以在 LDAP 中将 linux 哈希存储为 {CRYPT}$hash 并且它运行良好。
现在密码存储为加盐的 sha512 哈希值
,/etc/shadow 中的密码格式如下:
printf( "$6$%s$%s", $salt, $hash )
Run Code Online (Sandbox Code Playgroud)
$salt 似乎只是一个 ASCII 字符串,
我认为 $hash 是 $plainPW 和 $salt 串联的 sha512 摘要的 base64 编码结果,但我不确定。
LDAP 存储密码哈希是这样的:
printf( "{SSHA512}%s", $_96byteString )
Run Code Online (Sandbox Code Playgroud)
其中 $_96byteString 是 $saltedPWhash 和 $salt 的 512 位连接的 base64 编码结果
我试图对 $hash 进行 base64_decode,附加 $salt,base64_encode 结果并将其存储为上述 LDAP 格式的 $_96byteString。
唉 LDAP 无法通过此验证,一个简单的 ldapbind 就失败了。
有人知道如何转换 linux sha512 哈希值以便 LDAP 服务器接受它为有效吗?
我发现 linux crypt 使用与标准 mime 不同的 base64 编码。
该标准使用 [A-Za-z0-9+/] 而 crypt 使用 [./0-9A-Za-z]。
所以我尝试用 tr 进行转换,但结果仍然失败:-(
归档时间: |
|
查看次数: |
2456 次 |
最近记录: |