色彩検定1級を取得する魅力を紹介♪

perlで、どうしてもパスワードをGETで送る必要があります。
通常は、cryptを使用して暗号化するのだと思いますが、
cryptは不可逆なので使用したくありません。

perlを使用して、可逆で、できる限り簡単に暗号化する方法を教えてください。

gooドクター

A 回答 (3件)

可逆暗号化もいろいろありますが


Crypt::RC4はどうでしょうか。
エンコード、デコード共に1行でできます。

当然共通のパスフレーズが必要となりますが・・・

参考URL:http://search.cpan.org/~sifukurt/Crypt-RC4-2.02/ …
    • good
    • 0
この回答へのお礼

ありがとうございます。
簡単ですね。助かりました。

お礼日時:2006/01/30 19:20

まあとりあえずCPANで検索かければ(暗号なので"Crypt"が付くモジュール)その手のモジュールは結構ヒットするわけですが



http://search.cpan.org/search?query=Crypt&mode=m …

私が良く利用するのは
Crypt::CBC + Crypt::Blowfish
とか
Crypt::CBC + Crypt::Rijndael
とか etc...

CBCとは
http://www.ss.iij4u.or.jp/~somali/web/_block_mod …
を参考に
(暗号アルゴリズムのモジュールのみだと、ブロックの大きさで制約がありますからCBCなんかと組み合わせるのが普通です)

どれほどの強度を求めるのか、暗号化・復号化に使う共通鍵をどう管理するかが鍵になります。
まあ、共通鍵はスクリプト内で指定しておくだけになると思いますが。

ちなみにお尋ねしますが、GETで送るっていっても単にperlスクリプトが生成したページ上のリンクが「http://~/hoge.cgi?password=パスワード」ってなっててそれをクリックするような用途ですよね?

まさかページ上のフォームで入力したものをGETでスクリプトに送るときに暗号化したいなんて言いませんよね?
(それだと暗号化はクライアントつまりブラウザ側でしなきゃいけないのでまず無理になります)

この回答への補足

>まさかページ上のフォームで入力したものをGETでスクリプトに送るときに暗号化したいなんて言いませんよね?

それはないです。
用途として、perlで生成したフォームにパスワードを入力してもらい、それを
「print"Location:~ 」で別のスクリプトに飛ばすときに使用します。
GETの場合、ブラウザのアドレス欄にパスワードそのものが表示されてしまい、ユーザーが見たら気分悪いのだろうな、ということで暗号化しようと考えました。

補足日時:2006/01/30 19:41
    • good
    • 0
この回答へのお礼

今回は、#1さんの方法を使わせていただきますが、時間があるときに、お教えいただいた方法も試してみたいと思います。
ありがとうございました。

お礼日時:2006/01/30 19:22

APOPみたいにするか、または PGP のように公開鍵暗号方式でやればいいと思いますよ。

APOPの方法は不可逆ですが、同じ値が転送されることはまずないので途中でパケット見られてもあまり心配する必要はありません。PGPの場合は可逆ですが送り先の相手の公開鍵が分からないと暗号化はできません。

p.s.
APOPと似たような方法を使うとしてもMD5はやめといた方がいいかも知れません。MD5は既に死んでるようです。
http://slashdot.jp/security/article.pl?sid=05/11 …

参考URL:http://www.puni.net/~mimori/relay/apop.html,http …
    • good
    • 0
この回答へのお礼

今回は、#1さんの方法を使わせていただきますが、時間があるときに、お教えいただいた方法も試してみたいと思います。
ありがとうございました。

お礼日時:2006/01/30 19:22

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

gooドクター

人気Q&Aランキング