나는 작동하는 비밀번호를 가지고 있고 해시(/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자 해시 포함) 또는 "큰" crypt
DES(128자 비밀번호 지원으로 확장, 최대 178자 해시 길이) 또는 BSDI 확장 DES( _
접두사 뒤에 19- 문자 해시).
일부 배포판에서는libxcrypt그것은 지원하고문서더 많은 방법이 있습니다:
y
: 예 암호화gy
:gost-yescrypt7
: 암호화sha1
:sha1cryptmd5
:SunMD5
다른 플랫폼은 다른 알고리즘을 지원하므로 crypt
그곳의 맨페이지를 확인하세요. 예를 들어,오픈BSDcrypt(3)
Blowfish만 지원됩니다.ID"2b".