Java를 사용하여 Apache의 htpasswd와 같은 해시를 생성하는 방법

StackOverflow https://stackoverflow.com/questions/2469197

  •  20-09-2019
  •  | 
  •  

문제

Htpasswd에서 "암호의 힘 MD5 암호화"를 사용하여 '123'과 같은 해시를 생성합니다.

htpasswd : 123 => $ apr1 $ katbkalo $ ewjxrzakpjaxk4thy2jop/

MD5 다이제스트 사용 : 123 => 202CB962AC59075B964B07152D234B70

Java 감사를 사용하여 Apache Htpasswd와 같은 해시를 어떻게 생성 할 수 있는지 알려주세요.

도움이 되었습니까?

해결책

apache .htpasswd 파일의 비밀번호는 a를 사용하여 인코딩됩니다 소금. Java를 사용하여 이러한 암호를 생성하려면 동일한 작업을 수행해야합니다. 이 지역 Apache의 .htpasswd 파일에 사용되는 Salt/Hashing 알고리즘에 대한 설명이 있습니다. 나는 당신이 사용할 수있는 실제 알고리즘을 찾고 있으며 답을 찾은 후에 내 대답을 편집 할 것입니다.

편집하다: 바로 여기에 다음과 같이 묻는 것 같습니다.

프로그래밍 방식으로 htpasswd를 구축합니다

다음은 소스 코드와 함께 Apache의 문서입니다.

http://httpd.apache.org/docs/2.2/misc/password_encryptions.html

http://svn.apache.org/viewvc/apr/apr-util/branches/1.3.x/crypto/apr_md5.c?view=co

다른 팁

나는 누군가가 Java에서 이것을 다루는 곳을 발견하고 맥주 용송 면허로 그것을 발표했습니다. 결코 옳지 않은 것보다 늦었습니까? 아마도 2007 년부터 있었을 것이므로 2010 년에 물어 본 후에 결국 시간을 찾지 못했다면 놀랄 것입니다.

"Java 항구 : Jonathan Abbey, jonabbey@arlut.utexas.edu"

"Md5crypt.java는 Poul-Henning Kamp의 원래 FreeBSD MD5 기반 해시 알고리즘의 포트이며,이 알고리즘의 Apache HTTPD 서버 변형을 지원하는 추가 방법이 있습니다."

"결과 문자열은 '$ apr1 $'형식입니다.u003Csalt> $u003Chashed mess> "" "

ftp://ftp.arlut.utexas.edu/pub/java_hashes/

Md5crypt는 당신이 찾고있는 것입니다. 그것은 구현됩니다 Apache Htpasswd 알고리즘

반복을 사용한 아파치 별 알고리즘 (1,000 번) 임의의 32 비트의 다양한 조합의 MD5 다이제스트 소금 그리고 비밀번호.

import org.apache.commons.codec.digest.Md5Crypt;
...
String enPasswd = Md5Crypt.md5Crypt("your plain password".getBytes());
String htpasswdContent = "your username:" + enPasswd;
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top