• ベストアンサー

PHPのcrypt関数について

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

  • fichi
  • お礼率38% (24/63)
  • PHP
  • 回答数2
  • ありがとう数3

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

  • ベストアンサー
回答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

  • PHPのODBC関数

    PHPのODBC関数でデータベースに接続したいのですが、 下記のエラーが発生します。PHPのモジュール追加が必要なのでしょうか? またそれはどのようなものでしょうか?よろしくお願いします。 Fatal error: Call to unsupported or undefined function odbc_connect()

  • phpでmb関数が使えない

    phpでmb_strlen関数を使おうと思ったら、Call to undefined function mb_strlenとエラーが出て使えません。調べたら他のmb関数も使えないようです。vagrantで作った仮想サーバなのですが、php.iniの設定がおかしいのでしょうか?

    • ベストアンサー
    • PHP
  • PHPの関数はどこのファイルで定義されていますか?

    PHPのデフォルトの関数はどこのファイルで定義されていますか?教えて下さい。Call to undefined function: socket_create() というエラーメッセージが出て困っています。

    • ベストアンサー
    • PHP
  • PHPのmysql関数について

    RedHat7.2のFTP版でそのまま内包されているPHP3,PHP4をインストールしました。 通常の関数は使用できるのですが、mysql_connectを使ってDBにアクセスしようとすると Fatal error: Call to undefined function: mmysql_connect() in xxx on line xxx というようなエラーになります。 関数が使えないってこういうことってありうるのでしょうか? どなたか原因をお知りでしたら教えてください。 (Apahe ,mysqldは正常に起動した状態です。)

    • ベストアンサー
    • PHP
  • PHPのpg_pconnect関数について

    WindowsにApache2・PHP5・Postgresqlをインストールしました。 PHPは動くのですが、pg_pconnectのようなpostgresql関係の関数が動きません。 具体的には Call to undefined function pg_pconnect() というエラーがでます。 php.iniのextension=php_pgsql.dllの箇所を有効にしたのですが、それでもエラーが出ます。

    • 締切済み
    • PHP
  • PHP で暗号化して何かを送信することってあるのでしょうか?

    こんにちは、趣味で PHP を触っています。 とても初歩的な質問になってしまうと思いますが、よろしくお願いします。 PHP では crypt 関数で暗号化することができるらしいのですが、実際にこれを使わなければいけない場合とはどのような時なのでしょうか? http://jp2.php.net/manual/ja/function.crypt.php PHP で処理したことを MySQL などのデータベースに書き込む場合、主にサーバー内での処理なので外部から見られることなんてないと思っていましたが、見ることは可能なのでしょうか? それともう一つ質問がありまして、マニュアルには「復号するための関数はありません。 crypt() が使用しているのは単方向アルゴリズムだからです。」とありますが、それだと暗号化すると二度とその情報が何かわからなくなるのではないでしょうか? 何か複合化する方法があるのですか? よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHP Version 4.3.9で画像を

    表示させたいのですが以下の関数 imagecreatefromjpeg imagecreatetruecolor imagecopyresized imagejpeg を使うと次のようなエラーが発生します (imagecreatefromjpeg以外でも同じ) Fatal error: Call to undefined function: imagecreatefromjpeg() in /var/www/html/postgres/bbs3/bbs3.php on line 32 どうしたらこれらの関数を使えるようになるのでしょうか?

    • ベストアンサー
    • PHP
  • PHP mb_strlen()使う

    Windows10とMicrosoftEdgeで、プロバイダー(ぷらら)の提供するホームページの開設サービスを利用しています。 プロバイダー(ぷらら)の提供するPHPのバージョンは、phpinfo()で調べたら、5.3.3でした。 php.iniは自分では編集できません。 $numLen = mb_strlen($line, 'UTF-8');を実行すると、 Fatal error: Call to undefined function mb_strlen() in phpファイルの場所 と表示され、 if (!extension_loaded("mbstring")) { dl("mbstring.so"); // エクステンションのロード }を実行すると、 Fatal error: Call to undefined function dl() in phpファイルの場所 となりmb_strlen()が使用できません。 何か他のmb_strlen()の呼び出し方があれば教えてください。 また、PHPの関数を使ってmb_strlen()を自作することができるならば、使う関数を教えていただけないでしょうか。お願いします。

    • ベストアンサー
    • PHP
  • php4.3.8でmail関数が認識しません。

    mailの設定がどうだとかでなくて、mail()関数そのものが認識していないようです。 PHP 4.2.3だと動いてたのですが 4.3.8にしたら動かなくなりました。 下記のようなテストを行うと <?php $mail_to = "aaa@aaa.co.jp"; $mail_from = "From: info@aaa.co.jp"; $mail_subject = "AAA"; $mail_body = "aaa"; $ret = mail($mail_to, $mail_subject, $mail_body, $mail_from); ?> 4.2.3の場合メールが届き、 4.3.8の場合は Fatal error: Call to undefined function: mail() in というエラーでした バージョンによって違うのですか? php4.3.8の場合、mail関数を認識させる為になにか特別な作業が必要ですか?

    • ベストアンサー
    • PHP
  • 関数

    今自宅で WindowsME anhttpd 1.42b php-4.2.3-Win32 の環境でPHPプログラムを作成しているのですが、 マルチバイト関数の mb_convert関数を使うと undefined function: mb_convertと表示されます。 誰か解決法をご存知の方、教えてくださいお願いします

    • ベストアンサー
    • PHP

専門家に質問してみよう