아래와 같이 해시된 암호 문구가 표시됩니다 /etc/shadow
. 나는 그 형식을 잘 이해하지 못합니다.
$y$j9T$F5Jx5fExrKuPp53xLKQ..1$X3DX6M94c7o.9agCG9G317fhZg9SqC.5i5rd.RhAtQ7
아래 그림과 같이 4개의 부분으로 구성되어 있습니다. 에 따르면 crypt(5)
.y
yescrypt
https://manpages.debian.org/unstable/libcrypt-dev/crypt.5.en.html
- y
- j9T
- F5Jx5fExrKuPp53xLKQ..1
- X3DX6M94c7o.9agCG9G317fhZg9SqC.5i5rd.RhAtQ7
마지막 세 부분은 무엇을 의미합니까?
답변1
"다음 부분은 무엇을 의미하나요?"라고 대답하세요.crypt(3)
기능":
id
param
salt
hash
좀 더 자세히 설명드리자면여기.
새로운 yescrypt
"비밀번호 해싱 체계"와 관련하여 두 번째 필드의 의미는 다음을 읽어 보면 이해할 수 있습니다.이것, 더 알고 싶으시면 읽어보셔도 됩니다yescrypt v2 사양.
더 자세히 조사해 보니 함수에서 해싱이 발생하는 것 같습니다.yescrypt_r. 코드에서 다양한 매개변수 정의를 볼 수 있습니다. is 의 경우
where is 의 첫 번째 숫자에 있는 숫자로 설정한 다음 해당 함수를 사용하여 r과 p를 구문 분석합니다.id
7
N
2^x
x
param
decode64_uint32_fixed
나머지 필드에서 param
.
다른 모든 경우(예: 함수가 값을 확인하고 그렇지 않으면 반환하기 때문에 is 인 id
경우 에만 ) 소스는 조건부로 다양한 매개변수를 설정하고 원본과 반대되는 것을 이해하려고 노력하는 방식으로 코드 블록을 작성합니다. 작가의 바램. 그래서 나는 그것을 독자들에게 연습으로 남겨둔다.y
id
7
y
동일한 파일에서 함수네 비밀번호다음으로 crypt(3)
.