繁体   English   中英

使用MD5密码连接到LDAP

[英]Connecting to LDAP with MD5 password

我有此设置可以连接到我的LDAP:

Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://urlTomyLDAP:389");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, name);
env.put(Context.SECURITY_CREDENTIALS, password);

当密码为“清除”时,一切正常。 但是此密码是从Web客户端获取的,并且是哈希值(使用JavaScript)。
所以我没有明确的密码。 是否可以使用我的哈希密码配置环境地图? 如何 ?

这是不可能的,这样做是错误的。

哈希用于防止明文密码被访问(例如,管理员)或被盗时不被透露。 因此,LDAP通常存储用户密码的哈希。 如果有人可以访问存储的LDAP密码哈希,则原始用户的密码将不可见,因此无法用于身份验证。

如果您将密码的哈希作为有效的身份验证方法接受,那么访问哈希将使某人可以在不知道原始密码的情况下进行身份验证。

如果您绝对需要在浏览器中完成身份验证,那么将密码的哈希值从LDAP传递到客户端,并根据JavaScript接收到的哈希值来验证用户输入会更安全。 在这种情况下,盐是绝对必须的,这实际上不是实现安全性的方法。

似乎您不理解哈希是该操作。 哈希字符串时,无法将其转换回。

唯一有意义的是哈希与另一个哈希字符串进行比较 如果两个散列字符串相同-您可以得出结论,两个预散列字符串相同(相等)。

对于您的特定情况-由于您将无法使用哈希密码登录,因此应保留哈希作为安全措施。

如果您想了解更多-检查

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM