- ベストアンサー
パスワード作成 perl -e "print crypt('password', 'xx')"のやり方
Perl超初心者です。 めぐあい掲示板というCGIの設置をしてる最中なのですが、管理者パスワードの作成方法がわかりません。 ------------------------------------------------- # 管理者パスワード(必ず変更して下さい!) $admin_passwd = "xxj31ZMTZzkVA"; # 半角英数字8文字以内の文字列をcryptで変換したものを指定 # 例)perl -e "print crypt('password', 'xx')" ------------------------------------------------- パスワード作成 perl -e "print crypt('password', 'xx')"の具体的方法を教えてください。 perlをOS(WindowsXp)にインストール?する必要があるのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
以下のスクリプトを、$a, $b について変更した後、適当なファイル名(passmaker.cgiなど)に保存して、パーミッション755でサーバーにアップロードして、URLからアクセスしてみてください。たぶんパスワードが表示されると思います。 ------------------------------------------------------------------ #!/usr/bin/perl # *要変更* パスワードその1(8文字以内) my $a = "password"; # *要変更* パスワードその2(2文字) my $b = "xx"; # *以下変更の必要なし* # パスワード生成 my $pass = crypt($a, $b); # 出力 print "Content-type: text/html\n\n"; print $pass; exit 0; ------------------------------------------------------------------ ですが、実際はXPにApacheなりActive Perlなりをインストールした上で、十分にテストしてからアップロードしたほうがいいとは思いますよ。(一種のマナー?)
その他の回答 (1)
- hok212
- ベストアンサー率66% (100/150)
> パスワード作成 perl -e "print crypt('password', 'xx')"の具体的方法を教えてください。 これはコマンドプロンプト(UNIX系ではシェル)から上記のコマンドを入力し、「文字列"password"をcrypt関数で暗号化し、その値を表示せよ」というコマンドです。 これを行うには疑問に思われているとおり、OSにPerlがインストールされていなければいけません。 ただし、WindowsとUNIX系ではcrypt関数によって得られる暗号が異なります。 ActivePerlをインストールした場合、WindowsではMD5で暗号化さえた文字列が返されますが、UNIX系ではDESで暗号化された文字列が返されます。 つまり、利用する予定のCGIの設置先がUNIX系のサーバであった場合、WindowsにインストールしたActivePerlで暗号化した文字列を $admin_passwdに指定しても意味がないということです。 設置先のサーバに telnet や ssh でログインできるのならば、上記のコマンドで暗号化文字列を得ることも出来ますが、先の回答者が説明されているように、DES暗号を得るCGIを設置先のサーバに置いて、それで得られた暗号化文字列を $admin_passwdに指定する方法のほうがいいかもしれませんね。
お礼
下記にPerlの実行環境がない人の為にパスワード変換フォームがありました。 どうもお騒がせいたしましたm(_ _)m http://www.megumi-island.net/cgi.html#bbsmenu
補足
やはりOSにPerlがインストールされてる必要がありましたか。でもWindowsだと暗号が異なるんですね。 telnetやsshでログインする方法もわかりませんし、No.1さんのようにCGIを利用した方がよさそうですね。
お礼
下記にPerlの実行環境がない人の為にパスワード変換フォームがありました。 どうもお騒がせいたしましたm(_ _)m http://www.megumi-island.net/cgi.html#bbsmenu
補足
早速の回答ありがとうございました。 passmaker.cgiで見事に成功しました。 ちなみに下記方法はApacheなりActive Perlなりをインストールした環境でないと動作しないのでしょうか? perl -e "print crypt('password', 'xx')"