我工作的组织使用PPolicy(一个OpenLDAP模块)来自动清除和哈希密码.不幸的是,我无法访问运行OpenLDAP服务器的机器,所以我看不到配置文件.从我所看到的,几乎所有的东西似乎都是使用默认设
我想要为特定用户检索盐.如果我查看用户的属性,userPassword是SSHA密码.我没有看到任何关于该特定用户的盐.我结束了LDAP模式,我也看不到盐.
如果你猜猜每个用户正在储存盐,那会在哪里?我明白这是模糊的,可能不是很多的信息,但是我在OpenLDAP文档中找不到任何地方可以解释哪里存储的唯一盐.也许曾经配置过OpenLDAP服务器的人可能会知道默认位置在哪里.
谢谢.
使用SSHA,通常将盐附加到SHA1哈希,然后整个事情都是Base64编码(我从未看过没有这样做过SSHA的LDAP).您可以通过查看userPassword属性来告诉这一点.如果它是28个字符长,a =在结尾,这只是散列.如果Base64值为32个字符以上,则它包含哈希和盐. Base64解码该值并剥离前20个字节,这是SHA1哈希.剩下的字节是盐.
例:
Base64 encoded hash with salt userPassword: {SSHA}MTIzNDU2Nzg5MDEyMzQ1Njc4OTAxMjM0 Base64 decoded value SHA1 Hash Salt --------------------++++ 123456789012345678901234
编辑:双重检查后,似乎有时支持可变长度的盐.更正了编码描述以解决这个问题.