crypt'메카니즘의 이해crypt'메카니즘의 이해한 패스워드 문자열을 작성하는데 있어서, DES에 근거한 해쉬함수를 사용하였는가,
MD5에 근거한 해쉬함수를 사용하였는가는 아주 간단히 알 수 있습니다.
MD5를 사용한 패스워드의 문자열은 반드시 '$1$'라는
문자로 시작됩니다. DES를 사용한 패스워드 문자열은 어떠한 특정 문자도 가지지
않지만, MD5를 사용한 패스워드보다 짧고 $'라는 문자를 포함하지
않는 64문자의 알파벳으로 구성되어져 있습니다. 따라서, 달러 기호로 시작되지 않는
비교적 짧은 문자열은 DES를 사용한 패스워드일 가능성이 높은 것입니다.
여러분의 시스템에서는 어느 쪽의 라이브러리가 사용되어져 있는가를 확인하는
것은, 정적으로 링크어진 'init'와 같은 것(이러한 프로그램에 대한 유일의
방법은, 알고 있는 패스워드를 시험해 봐서 작동하는지 어떤지를 확인하는
것입니다.)을 제외한 대부분의 프로그램에 대해서는 상당히 간단한 것입니다.
'crypt'를 사용하는 프로그램은 'libcrypt'에 링크되어져 있고,
각각의 라이브러리에 대한 'libcrypt'는 적절한 수행에의 심볼릭링크로
되어져 있습니다.
예를 들면, DES판을 사용하고 있는 시스템에 있어서는 다음과 같이 되어져 있습니다.
$ cd /usr/lib
$ ls -l /usr/lib/libcrypt*
lrwxr-xr-x 1 bin bin 13 Sep 5 12:50 libcrypt.a -> libdescrypt.a
lrwxr-xr-x 1 bin bin 13 Sep 5 12:50 libcrypt.so.2.0 -> libdescrypt.so.2.0
lrwxr-xr-x 1 bin bin 13 Sep 5 12:50 libcrypt_p.a -> libdescrypt_p.a
MD5에 근거한 라이브러리를 사용하고 있는 시스템에 있어서도 같은 링크가
설정되어 있겠지만, 그 타게트는'libdescrypt'가 아닌
'libscrypt'로 되어져 있을 겁니다.
crypt'메카니즘의 이해