• ベストアンサー

perlで可逆な暗号化

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

  • Perl
  • 回答数3
  • ありがとう数6

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

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

可逆暗号化もいろいろありますが Crypt::RC4はどうでしょうか。 エンコード、デコード共に1行でできます。 当然共通のパスフレーズが必要となりますが・・・

参考URL:
http://search.cpan.org/~sifukurt/Crypt-RC4-2.02/RC4.pm
workpad30j
質問者

お礼

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

その他の回答 (2)

  • Ethersky
  • ベストアンサー率71% (168/235)
回答No.3

まあとりあえずCPANで検索かければ(暗号なので"Crypt"が付くモジュール)その手のモジュールは結構ヒットするわけですが http://search.cpan.org/search?query=Crypt&mode=module 私が良く利用するのは Crypt::CBC + Crypt::Blowfish とか Crypt::CBC + Crypt::Rijndael とか etc... CBCとは http://www.ss.iij4u.or.jp/~somali/web/_block_mode.html を参考に (暗号アルゴリズムのモジュールのみだと、ブロックの大きさで制約がありますからCBCなんかと組み合わせるのが普通です) どれほどの強度を求めるのか、暗号化・復号化に使う共通鍵をどう管理するかが鍵になります。 まあ、共通鍵はスクリプト内で指定しておくだけになると思いますが。 ちなみにお尋ねしますが、GETで送るっていっても単にperlスクリプトが生成したページ上のリンクが「http://~/hoge.cgi?password=パスワード」ってなっててそれをクリックするような用途ですよね? まさかページ上のフォームで入力したものをGETでスクリプトに送るときに暗号化したいなんて言いませんよね? (それだと暗号化はクライアントつまりブラウザ側でしなきゃいけないのでまず無理になります)

workpad30j
質問者

お礼

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

workpad30j
質問者

補足

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

回答No.2

APOPみたいにするか、または PGP のように公開鍵暗号方式でやればいいと思いますよ。APOPの方法は不可逆ですが、同じ値が転送されることはまずないので途中でパケット見られてもあまり心配する必要はありません。PGPの場合は可逆ですが送り先の相手の公開鍵が分からないと暗号化はできません。 p.s. APOPと似たような方法を使うとしてもMD5はやめといた方がいいかも知れません。MD5は既に死んでるようです。 http://slashdot.jp/security/article.pl?sid=05/11/18/0125251

参考URL:
http://www.puni.net/~mimori/relay/apop.html,http://gnupg-interface.sourceforge.net/
workpad30j
質問者

お礼

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

関連するQ&A

  • パスワードの暗号化

    いつもお世話になっております。 今回はjavascriptをつかった暗号化についてお聞きしたいです。 パスワードをサーバーに送る際、そのまま送ると少し詳しい人なら丸わかりになってしまいます。 そこで暗号化をして送信したく、いろいろ探してみましたがなかなかいい方法が見当たりません。 des.jsというライブラリを見つけましたが、復号化のコードも書いてあり、簡単に復号できてしまうような気がします。 いろいろ探していていいと思ったのは、perlのcryptのような不可逆の暗号化の方法でした。 そのような方法はjavascriptにあるのでしょうか? またそれ以外でもなにかいい方法はありますでしょうか? 完全に隠蔽するのは不可能だということはわかっておりますが、 できる限りわかりにくくする方法を知りたいです。 以上の点、ご教授お願いいたします。

  • 暗号化(perl)→復号化(php)

    暗号化キーを使用した暗号化→復号化で cgi(perl)で暗号化し、phpで復号化を行おうとしております。 AES暗号を使用したのですが、いろいろ設定を変えて 試みたのですが、うまくいきませんでした。 他に暗号化キーを使用した暗号化の方法がありましたら 教えてください。 暗号化(perl)→復号化(php)で実績のあるモジュールが あれば非常に助かります。 よろしくお願いします。

    • ベストアンサー
    • Perl
  • PHPの可逆暗号化関数について

    こんにちは、現在PHP ver5とpostgreSQLでデータベースと連携させて使っているのですが、 テーブル内にデータを入れる際、今は平文のまま登録していますが、 この文字列を、暗号化してデータベースに登録し、取り出したい時に複合化して平文に戻せる関数はどういったものがあるでしょうか。 IDやパスワードといった文字列ではないので不可逆暗号化関数では元のデータベースの平文が分からなくなってしまうと思うのですが、 これを暗号化して登録しておき、抽出する際に元に戻す作業をしたいのです。 これってURLエンコード・デコードとは違いますよね・・・。 長くなりましてすみません。わかる方よろしくお願いします。

    • ベストアンサー
    • PHP
  • 不可逆? それとも非可逆?

    たとえば、DNAからRNAができるけれどその逆はできないという学説がありますが、その「逆ができない」ことを表す言葉は、「不可逆」か「非可逆」か、どちらが正当なのでしょうか。 分野は全く異なりますが、情報処理の分野、たとえば音声の圧縮に関するテキストを読んでいると、よく「一旦MP3で圧縮されたデータはWAVEに変換しなおしても音質が元のWAVEに還元できない」ことを示す言葉として、「非可逆」がよく用いられているように思います。 ですが、岩波の生物学辞典に当たれば、「不可逆」は載っていますが、「非可逆」は載っていないのです。 分野によって、「不可逆」が優勢なところと、「非可逆」が優勢なところがあるのでしょうか? お願いします。

  • cryptで暗号化する

    .htaccessのベーシック認証を 登録型みたいな風にして使用したいと思うんですけど、 .htpasswdファイル内に記入する ID:この部分(パスワード) をcryptで生成するようなのですが、各サイトで説明しているようにやってもできません。 どうすればきちんと暗号化できるのでしょうか? よろしくお願いします。

  • パスワード作成 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)にインストール?する必要があるのでしょうか?

    • ベストアンサー
    • Perl
  • パスワードを暗号化するCGI

    基本認証のパスワードを暗号化するCGIを作ったのですが、 基本認証で認証させようとしてもうまくいきません。 cryptで行った暗号化は基本認証には使えないのでしょうか?

    • ベストアンサー
    • CGI
  • perlを難読化、暗号化させたい

    ホームページや、普通のフリーソフトのソースは簡単に難読化や暗号化、コンパイルができて、簡単に見ることができなくなりますが、perlのソースを暗号化?難読化させたいのですが、何か、良い方法は無いでしょうか? ご存知の方、教えてください。 宜しくお願い致します。

    • ベストアンサー
    • CGI
  • デジタルの可逆性

    削った歯とか、切った髪とかは不可逆だと思うのですが、 コンピューター関連のプログラミング等は、 ほとんど全てが可逆性なのかなー、と思って質問しました。

  • 暗号化の計算式

    cryptの暗号化についてなのですが同じ特定の文字列を暗号化させても 毎回違う結果になりますがどのような計算式でこのような結果になる のかわかりやすく教えて下さい。 また、他にも様々な暗号化の方法があると思いますが毎回結果が異なる 暗号化方法の計算式もあったら教えて下さい。 よろしくおねがいします。

専門家に質問してみよう