3

私はcで初めてcrypt()関数を使用しています。私はいくつかの初期テストを実行しているだけなので、これは実際には使用されません。特に一定のソルト値です。:)

次のコードを実行します。

crypt(password, "$1$k7de83ka7");

cryptドキュメントの私の理解から、この提供されたソルト値は、crypt()がMD5モードで実行されることを指定する必要があります。これにより、「$1$」形式のハッシュが生成されます。$ 1 $は、値がMD5でハッシュされたことを示します。それがうまくいくはずだと私は理解しています。

ただし、上記のコードをテストすると、返される値は「$ 1ciFuWRySk3A」であるため、「$」文字の1つが欠落しているようです。私はこの問題を引き起こすために何か間違ったことをしていますか?

4

1 に答える 1

1
crypt(password, "$1$k7de83ka7");

cryptmanページから、正しく呼び出しているとは思いません:

ソルトが文字列「$id$」で始まり、 その後に「$」で終わる文字列が続く文字列の場合: $id$salt$encrypted

次に、id は暗号化方式を識別します。

また、 $ を含む文字列が返されるとは思わないでください (必ずしもそうとは限りません)。

成功すると、暗号化されたパスワードへのポインタが返されます。エラーの場合、NULL が返されます。

于 2012-11-15T18:46:52.600 に答える