crypt関数は,エンコード (つまり暗号化) されたパスワードを生成します。暗号化の方法は NBS Data Encryption Standard をベースにしていますが, DES をハードウェア化してもキーを見つけるのが困難になるように強化されています。
特別なことがない限り,
cryptの第 1 引数はユーザが入力したパスワードです。第 2 引数 (salt) は,[a-zA-Z0-9./] から選択された 2 文字の文字列です。最初に,salt の文字列を使用して DES のアルゴリズムが攪乱されます (攪乱には 4096 通りの方法があって,その中の 1 つを選択するために salt が使用されます)。次に,パスワードをキーにして定数文字列が繰り返し暗号化されます。戻り値はポインタになっていて,暗号化されたパスワードを指しています。暗号化されたパスワードは salt と同じようにアルファベットで表されており,最初の 2 文字が salt と同じ文字列になっています。
cryptから返される値は静的なデータ領域を指していますが,その内容は,この関数を呼び出すたびに上書きされます。
encryptと
setkeyも参照してください。