编程语言
首页 > 编程语言> > java – 解密OpenLDAP密码

java – 解密OpenLDAP密码

作者:互联网

我的OpenLDAP中有一组用户,我希望从中获取一些信息,例如“cn”和“userPassword”.

但是,当我检索这些详细信息时,密码不是纯文本,即使它在我的LDAP服务器中设置为此密码.

任何想法如何解决这个问题?

解决方法:

userPassword通常以散列形式存储

userPassword: {hasAlgorithm}Hashed value

示例:

userPassword: {SSHA}DkMTwBl+a/3DQTxCYEApdUtNXGgdUac3

允许userPassword属性具有多个值,并且每个值可以以不同的形式存储.在身份验证期间,slapd将遍历这些值,直到找到与提供的密码匹配的值,或者直到它用完要检查的值.存储方案存储为值的前缀

你可以有 :

CRYPT

此方案使用操作系统的crypt(3)哈希函数.它通常会生成传统的Unix风格的13个字符哈希,但在具有glibc2的系统上,它还可以生成更安全的34字节MD5哈希

MD5

此方案只需获取密码的MD5哈希值并将其存储为base64编码形式

SMD5

这通过添加盐(随机数据,这意味着存在给定明文密码的许多可能表示)来改进基本MD5方案.例如,这两个值都表示相同的密码

SSHA

这是SHA方案的盐渍版本.它被认为是slapd支持的最安全的密码存储方案

结论

大多数情况下,您不必恢复密码,您只需要从登录表单中的用户提供的密码计算哈希值,并将其与userPassword进行比较.

标签:jaas,java,ldap,openldap,gssapi
来源: https://codeday.me/bug/20190827/1735890.html