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 18 Sep 5 12:50 libcrypt.so.2.0 -> libdescrypt.so.2.0
lrwxr-xr-x 1 bin bin 15 Sep 5 12:50 libcrypt_p.a -> libdescrypt_p.a
MD5 に基づいたライブラリを使っているシステムにおいては, 同じようなリンクが
見られるでしょうが, そのターゲットは `libdescrypt
' ではなく
`libscrypt
' になっているでしょう.
crypt
' メカニズムを理解する