2011-10-01 5 views
0

나는 암호 형식 MD5로 변환하고 싶은 MD5 해시 암호를 가지고 있습니다.MD5 16 진수 문자열을 64 진수 MD5 문자열로 변환하려면 어떻게해야합니까?

나는 쉽게 모두 만들 수있는 일반 텍스트가있는 경우 :

% echo -n 'testpass' | md5sum 
179ad45c6ce2cb97cf1029e212046e81 - 

% echo -n 'testpass' | openssl passwd -1 -stdin -salt '' 
$1$$JN/baUhJCUwYKagp48tsP0 

을하지만 어떻게 JN/baUhJCUwYKagp48tsP0179ad45c6ce2cb97cf1029e212046e81을 변환합니까?

+0

무엇인지 이해하기 전에는 암호화를 구현하지 마십시오. 원하는 모든 것을 가지고 놀고 배우십시오. 사람들이 당신이 실제로 그것을 얻을 때까지 의존하지 않는 것에 이것을 넣지 마십시오. – Incognito

답변

2

첫 번째 문자열은 16 진수이고 두 번째 문자열은 base64입니다.

MD5 해시는 128 비트 숫자입니다. 인쇄하기 위해 선택할 수있는 방법은 16 진수 문자열 또는 base64 인코딩 된 문자열로 지정할 수 있습니다. 둘 다 128 비트 숫자를 나타내는 것입니다.

그러나 ms5sumopenssl passwd하지 않습니다 암호화 해시하여 같은 128 해시 값 암호, 그래서 하나의 암호 해시는 다른 번역하지 않습니다 당신의 예에서, 그래서 동일한 128 비트의 수를 산출하지 않습니다 동일한 암호

+0

암호화는 어떻게 다른가요? 두 경우 모두 소금이 없으며,'openssl passwd'는 다르게 무엇을합니까? 추가 반복이라면 번역에서도 그렇게 할 수 있습니다. –

+0

openssl-passwd 매뉴얼은 실제로 MD5가 아니라 MD5 기반임을 설명합니다. 나는 소스 코드를 읽는 것이 그것이 어떻게 다른지 말할 것이라고 생각한다. – Soren

+0

@Legate 시작을위한 암호화가 아닙니다 ... –

1

"crypt-style"MD5로 변환하려는 일부 MD5 해시 암호가 있다고 가정 해보십시오. 그렇다면 Apache 사용자를 인증하는 데 사용할 수있는 파일을 생성하려고합니다. 안타깝게도 보통 MD5 해시 값에서는이 작업을 수행 할 수 없습니다.

Apache의 MD5-Crypt 해시 알고리즘은 암호만으로 이루어진 MD5 합계가 아닙니다. -1 변형도 없습니다. 두 개는 salt를 포함하지 않는 입력 비밀번호를 추가하거나 수정하여 결과 해시를 제공합니다. 실제로 문자열을 md5sum으로 파이핑하는 방법을 사용하여 MD5 해시 값을 얻은 경우 그 결과 해시는 htpasswd 호환 해시에 해시 할 수있는 모든 항목으로 바꿀 수 없습니다.

죄송합니다.

관련 문제