首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用SSHA-512散列方法验证LDAP用户密码

使用SSHA-512散列方法验证LDAP用户密码
EN

Stack Overflow用户
提问于 2013-07-26 17:15:52
回答 3查看 11.4K关注 0票数 3

我正在使用OpenLDAP来存储用户信息。用户条目是一个inetOrgPerson对象。我使用Apache Directory Studio添加带有SSHA-512散列方法的userPassword。

如何在Java应用程序中使用LDAP中存储的密码验证输入的用户密码?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-08-02 01:47:19

我找到了我的答案:http://gurolerdogan.blogspot.com/2010/03/ssha-encryption-with-java.html

代码语言:javascript
复制
SSHA ssha = new SSHA("SHA-512");
String sshaStr = ssha.createDigest("randomString", "mypwd");
//{SSHA}5QxZCiM/zcn0/upHX2uw6ICbgE+PLa9sJz/UpfMAMe1isyxuv+NeW4k4GjRDoTQHnB5QjCKCydJJjUQnT3DEEXJhbmRvbVN0cmluZw==
return sshaStr;

将{SSHA}替换为{SSHA 512}您将有一个SSHA-512密码存储在OpenLDAP中。它在您创建新用户或更新用户密码时非常有用。

您可以改进源代码,例如用org.apache.commons.codec.binary.Base64替换sun.misc.BASE64Encoder。

票数 3
EN

Stack Overflow用户

发布于 2013-07-28 08:57:43

只需尝试使用该用户名和密码进行绑定。LDAP服务器将执行检查。这适用于所有的LDAP实现,而不仅仅是OpenLDAP。

在JNDI中,“绑定”是指在环境中使用用户名和密码作为凭据构造InitialContext,或者在现有上下文的环境中更改这些内容后发出LdapContext.reconnect()。

票数 1
EN

Stack Overflow用户

发布于 2013-07-28 18:37:09

  • 考虑不向目录服务器提供预编码的密码-这会阻止服务器检查密码质量和管理密码历史记录。使用安全连接以明文形式传输密码。将服务器配置为仅接受安全连接或拒绝非安全connection.
  • The上的StartTLS以外的操作LDAP绑定操作用于更改连接的授权状态。LDAP客户端向服务器发送绑定请求,然后服务器将提供的凭据与用户条目中存储的凭据进行匹配,如果成功,则更改连接的授权状态。

使用UnboundID LDAP SDK读取example

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17877432

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档