안녕하세요..사용자 이름 가지구
java(Ver 1.3.1)로 password 가져 오는 방법을 좀 알고 싶은데요..
답변 부탁드립니다.
암호가 평문으로 들어가게 정의 했다면 그렇게 할 수 있겠지만 암호화 되어 있다면 가지고 오더라도 안에 어떤 값이 들어 있는지 알수 없을 거 같은데요..
LDAP을 어떤 LDAP을 사용하시나요..
그럼
안녕하세요.
보통 암호를 저장하는 어트리뷰트로 userPassword 를 사용하게 되는데요 userPassword 는 Standard Attribute 로서 입력값을 기본적인 암호 알고리즘을 사용하여 binary 로 변환하여 저장하는 것으로 알고있습니다.
위 송상준 님 말처럼 일반 Text로 암호값을 알아낼수는 없게되있습니다.
이때 사용하는 암호 알고리즘에 따라 달라지겠지만(LDAP 종류에 따라) 보통은 CRYPT, SHA(SHA1) , SSHA 등을 사용하여 암호화를 합니다. 일단 암호화한 password는 복화화가 안되는것으로 알고있습니다.(거의 hash 알고리즘 - SHA, SSHA을 사용)
따라서 값은 가져올수있지만 그 값의 원래 TEXT 값은 알수없습니다.
그래서 password를 관리자 혹은 사용자가 운영상에 그 값을 확인할 필요가 있을때에는 암호를 담아두게될 Attribute를 새로이 지정하든지 LDAP 종류에 따라 userPassword의 암화를 생략하는 방법을 사용하셔야 할듯 합니다.
이상 허접.
가져온 패스워드와 입력된 패스워드를 비교하실려고 하는 거면.
암호화된 패스워드를 ldap에서 가져와서 입력된 패스워드의 ldap에서 password 저장할때 사용하는 암호화 방식으로 암호화해서 둘을 비교하면 됩니다.