비밀번호를 해시하는 데 사용되는 해싱 알고리즘을 찾는 방법은 무엇입니까?

비밀번호를 해시하는 데 사용되는 해싱 알고리즘을 찾는 방법은 무엇입니까?

나는 작동하는 비밀번호를 가지고 있고 해시(/etc/passwd)를 볼 수 있습니다. 일치하는 항목을 찾을 때까지 다른 알고리즘을 수동으로 시도하지 않고 비밀번호를 해시하는 데 사용되는 해싱 알고리즘을 어떻게 찾을 수 있습니까?

답변1

이 내용은 다음과 같이 기록됩니다.crypt(3)맨페이지, 당신은 찾을 수 있습니다통과하다 shadow(5)맨페이지, 또는passwd(5)~의. 이 링크는 최신 Linux 기반 시스템에 대한 설명입니다.

만약에소금문자 "$로 시작하는 문자열입니다.ID$" 뒤에 선택적으로 "$"로 끝나는 문자열이 오면 결과는 다음과 같은 형식입니다.

$id$salt$encrypted

IDDES 이외의 암호화 방법을 식별한 다음 나머지 비밀번호 문자열을 해석하는 방법을 결정합니다. 다음 ID 값이 지원됩니다.

ID  | Method
─────────────────────────────────────────────────────────
1   | MD5
2a  | Blowfish (not in mainline glibc; added in some
    | Linux distributions)
5   | SHA-256 (since glibc 2.7)
6   | SHA-512 (since glibc 2.7)

로도 알려진 복어는 bcrypt접두사 2, 2b및 로 식별됩니다 2x( 2y참조:PassLib 문서).

따라서 해시된 비밀번호가 위 형식으로 저장되어 있으면 다음을 보면 사용된 알고리즘을 찾을 수 있습니다.ID; 그렇지 않으면 crypt기본 DES 알고리즘(13자 해시 포함) 또는 "큰" cryptDES(128자 비밀번호 지원으로 확장, 최대 178자 해시 길이) 또는 BSDI 확장 DES( _접두사 뒤에 19- 문자 해시).

일부 배포판에서는libxcrypt그것은 지원하고문서더 많은 방법이 있습니다:

  • y: 예 암호화
  • gy:gost-yescrypt
  • 7: 암호화
  • sha1:sha1crypt
  • md5:SunMD5

다른 플랫폼은 다른 알고리즘을 지원하므로 crypt그곳의 맨페이지를 확인하세요. 예를 들어,오픈BSDcrypt(3)Blowfish만 지원됩니다.ID"2b".

관련 정보