gpt4 book ai didi

java - JNDI LDAP 如何解码SSHA密码

转载 作者:行者123 更新时间:2023-12-01 12:31:09 24 4
gpt4 key购买 nike

我使用apacheds(作为LDAP服务器)并使用apache目录工作室将条目插入其中。对于 userPassword 属性,我仅选择纯文本。但是,apache 目录工作室正在对其进行加密。我不知道为什么会这样。现在,我检索该条目的 java 程序为我提供了 ssha 加密密码。有人可以帮我解码吗?

    import java.util.Hashtable;
import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.NamingException;
import javax.naming.directory.Attribute;
import javax.naming.directory.Attributes;
import javax.naming.directory.DirContext;
import javax.naming.directory.InitialDirContext;

class GetAttrs {
public static void main(String[] args) {

// Set up the environment for creating the initial context
Hashtable<String, Object> env = new Hashtable<String, Object>(11);
env.put(Context.INITIAL_CONTEXT_FACTORY,
"com.sun.jndi.ldap.LdapCtxFactory");
env.put(Context.PROVIDER_URL, "ldap://localhost:10389/o=mojo");
env.put(Context.SECURITY_AUTHENTICATION, "simple");
env.put(Context.SECURITY_PRINCIPAL, "uid=admin,ou=system");
env.put(Context.SECURITY_CREDENTIALS, "secret");

try {
// Create initial context
DirContext ctx = new InitialDirContext(env);

// Specify the ids of the attributes to return
String[] attrIDs = { "cn", "sn", "uid", "userPassword" };

// Get the attributes requested
Attributes answer = ctx
.getAttributes("cn=Harish Koppala, ou=Users", attrIDs);

// Print the answer
printAttrs(answer);

// Close the context when we're done
ctx.close();
} catch (Exception e) {
e.printStackTrace();
}
}

static void printAttrs(Attributes attrs) throws Exception{
if (attrs == null) {
System.out.println("No attributes");
} else {
/* Print each attribute */
try {
for (NamingEnumeration ae = attrs.getAll(); ae.hasMore();) {
Attribute attr = (Attribute) ae.next();
System.out.print(attr.getID()+" : ");
/* print each value */
if("userpassword".equalsIgnoreCase(attr.getID())){
for (
NamingEnumeration e = attr.getAll();
e.hasMore();
System.out.println(new String((byte[])e.next()))
);
}else{
for (
NamingEnumeration e = attr.getAll();
e.hasMore();
System.out.println(e.next())
);
}
}
} catch (NamingException e) {
e.printStackTrace();
}
}
}

}

输出:
用户密码:{SSHA}SKA8QY7BBX0tgdZlzL+3sEDFnIBsJwd8VHjexw==
uid:hwilliams
SN:威廉姆斯
cn:雨果·威廉姆斯

最佳答案

它没有加密。它正在安全地散列它。您无法解密或解码它。

关于java - JNDI LDAP 如何解码SSHA密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25908345/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com