• ベストアンサー

PHPのcrypt関数について

いつもお世話になっております。 ユーザーから入力していただいたパスワードをcrypt関数にて、暗号化したいのですが、 crypt($inpass); 以下のようなエラーメッセージがでてしまいます。 Call to unsupported or undefined function crypt() in この関数を使用するのに特別な作業等が必要なのでしょうか? 環境は Win98se ANHTTPD1.36 php4です。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

PHPマニュアルによると、(PHP 3, PHP 4 >= 4.0b1)で サポートされているようですので、特別な作業無しで 使用できるはずですが・・・。 また、PHPマニュアルによると 「salt引数が指定されない場合、PHPによりランダムに生成されます。」 となっていますので、関数の使用方法も間違っていないようです。 私の環境(PHP4.0.6)では、問題なく使えます。 この際、md5()関数を使用してはいかがでしょうか?

fichi
質問者

補足

アドバイス誠にありがとうございます。 回避策としてmd5を使用して構築しているのですが、cryptは、私の環境だとだめということは、私自身の環境に問題があるということですね。 md5ではうまくいってます。 今回はこちらで構築し、サーバーにアップロードする時にでも、もう一度crypt関数を試してみます。 ご親切なアドバイスありがとうございました。m(__)m

その他の回答 (1)

  • natural
  • ベストアンサー率37% (419/1115)
回答No.1

私はPerlからcryptを使用していますが、引数は二つです。 書籍を参考にして使っていますので詳しくは解りませんが、以下の様な感じです。 $saltset = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789./"; $n1 = int(rand 64); $n2 = ($n1 + time) % 64; $salt = substr($saltset, $n1, 1) . substr($saltset, $n2, 1); $pass = crypt($pass, $salt); crypt自体の使い方は同様なのではないかと予想しているのですが…。 一応御確認下さい。

fichi
質問者

お礼

すばやいアドバイス誠にありがとうございます。 Perlのcrypt関数は私も調べました。 今回の原因は私の環境のせいだということで、 回避策で構築してみます。 ありがとうございました。

関連するQ&A

専門家に質問してみよう