2013-08-03 7 views

답변

28

섀도 파일을 사용하여 주어진 사용자 이름에 대해 주어진 암호가 올바른지 확인할 수 있습니다.

대부분의 최신 배포판에서 해시 된 암호는/etc/shadow (루트에서만 읽을 수 있음) 파일에 저장됩니다. 루트로,과 같이 주어진 사용자에 대한 그림자 파일에서 줄을 당겨 :

username:$1$TrOIigLp$PUHL00kS5UY3CMVaiC0/g0:15020:0:99999:7::: 

사용자 이름 후 $ 1로하고, :이 같은 것을 볼 수

cat /etc/shadow | grep username 

. 이는 MD5 해시임을 나타냅니다. 그 후에 또 다른 $, 그 다음에 (이 경우) TrOIigLp 다음에 또 다른 $가옵니다. TrOIigLp는 소금입니다. 그 후 salt를 사용하여 해싱 된 해시 된 암호 (이 경우 PUHL00kS5UY3CMVaiC0/g0)가 표시됩니다.

지금, 당신과 같이, 같은 소금을 사용하여 지정된 패스워드를 해시 OpenSSL을 사용할 수 있습니다 : 메시지가 표시되면

openssl passwd -1 -salt TrOIigLp 

지정된 암호를 입력, 제공되는 소금을 사용하여 MD5 해시를 계산해야 openssl 명령, 그림자 파일의 위와 정확히 같아야합니다. 위의 명령에서 -1은 MD5 해싱을위한 것입니다.

+0

정보를 제공해 주셔서 감사합니다. 나는 섀도 파일의 두 번째 필드의 부분을 알지 못했습니다. 이제는 crypt() 함수를 사용할 수도 있습니다 ... 훌륭한 대답입니다. – smit

+0

@ mti2935 당신은'cat/etc/shadow | grep username' 또는'grep username/etc/shadow'? –

+0

러셀, 고마워. 그렇습니다, 그것은'cat'이었고'echo'는 아닙니다. 나는 대답을 편집했다. – mti2935