• 締切済み

Digest::MD5について

perlを学びはじめて2ヶ月の初心者です。 「Digest::MD5」というモジュールを勉強しているのですが、CPANサイトを閲覧しても、どのように役立つのかが全く分かりません。 説明お願い致します。 また参考サイトがあれば、紹介ください。 よろしくお願い致します。

  • yokt
  • お礼率34% (13/38)
  • Perl
  • 回答数4
  • ありがとう数3

みんなの回答

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

> 携帯(モバイル)サイトでは、どのように利用されているのでしょうか? ハッシュの特性上、その用途は絞れます。 ・Javaを利用したアプリケーション(iアプリなど)内で使用(必ず使っているとは限りません。これらのアプリで決済や認証を行うものの場合は使っている可能性があります) ・携帯電話・パソコンを問わずSSL通信等の暗号通信の中での使用。

yokt
質問者

お礼

回答ありがとうございます。 現在、PC、携帯のサイトをperlにて構築しているのですが、理解すべきことが多岐にわたっているので、苦戦しています。 今後ともよろしくお願い致します。

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

> 実際WEBの仕組みのどのような部分でつかわれているのか、理解できません。 どのように使われているかは、Dpopさんが紹介した以下のサイボウズの説明の通りです。(「なぜ1方向ハッシュ関数が必要か? 」の項目です) http://cybozu.co.jp/products/md5/md5.html 改竄以外にも、サイズが大きなファイルをダウンロードした際に途中でダウンロードに失敗していないかなど、ファイルが欠落・破損していないかを調べる手段としても利用できます。 ファイルの公開者があらかじめそのファイルのハッシュ値を求めておいて、ファイルと一緒に求めたハッシュ値も公開します。 ファイルをダウンロードした人は、自分でもハッシュ値を求めて公開されていたハッシュ値を比較することで、正しくダウンロードできたかを確認することができます。

yokt
質問者

補足

迅速な回答どうもありがとうございます。 PCサイトの場合はイメージがわきました。 携帯(モバイル)サイトでは、どのように 利用されているのでしょうか? ご存知でしたら教えてください。

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

MD5自体はデジタル署名では"ありません"。 デジタル署名の技術中で"使われる"だけであり、MD5そのものが署名となるわけではありません。 MD5はただ一方向要約関数(ハッシュ値を求める関数)であるだけです。 なお、ハッシュ値を求める関数にはMD5以外にもSHA1、SHA256、SHA384、SHA512、RIPEMD128、RIPEMD160、RIPEMD256、RIPEMD320などがあります。 (もちろんこれらをPerlで使うモジュールもCPANにあります。注:現在のところPerlのRIPEMDのモジュールはCPANには160しかないです)

yokt
質問者

補足

回答ありがとうございます。 MD5の概念は、理解できました。 しかし、実際WEBの仕組みのどのような部分でつかわれているのか、理解できません。 ご存知でしたら、教えていただけないでしょうか。

  • Dpop
  • ベストアンサー率51% (279/544)
回答No.1

MD5によるデジタル署名を作るモジュールです。 まず、MD5と言うのはなにか。 あるファイルを例えばウェブ上で配布します。作者はもちろん(例えば)ウイルスの混入などしていないものとします。しかし、悪意をもった第三者がウイルス入りのファイルを再配布するかも知れません。 その時、始めて配布されたファイルに「署名」と言うものを付けておくことで、このファイルは作者が作成したものだよ。と言うことを保障することができる様になります。要するに、改竄してしまうと、MD5の値が全く違うものになってしまうので、見分けが付く。と言うことになります。 ソフトウェアを配布する人は、そのソフトウェアだけでなく、そのソフトウェアのMD5デジタル署名を書き添えることで、改竄を避けることができるようになります。 MD5については、 http://e-words.jp/w/MD5.html http://cybozu.co.jp/products/md5/md5.html などを参考にしてください。 さて。核心に迫りましょう。 Digest::MD5と言うのは、Perlで、MD5のデジタル署名を作成するためのモジュールです。 ですので、MD5モジュールに対象となるファイルであったり、データであったを渡して、MD5デジタル署名の値を計算させます。 use Digest::MD5; $md5 = Digest::MD5->new; open(FIEL, "ファイル名"); $md5->addfile(*FILE); print $md5->digest; close(FILE); 例えば、こんな感じの処理を行えば、指定されたファイルのMD5デジタル署名を求めることができます。 Digest::MD5 マニュアル(日本語訳) http://perldoc.jp/docs/modules/Digest-Perl-MD5-1.5/MD5.pod 実際に、MD5を表示しているサイトの例 http://pukiwiki.org/index.php?cmd=read&page=PukiWiki%2F%E3%83%80%E3%82%A6%E3%83%B3%E3%83%AD%E3%83%BC%E3%83%89%2F1.4.3 (はるか、下の方に、ダウンロードと言う場所があり、そこにMS5が表示されています。)

yokt
質問者

補足

回答ありがとうございます。 MD5の概念は、理解できました。 しかし、実際WEBの仕組みのどのような部分でつかわれているのか、理解できません。 ご存知でしたら、教えていただけないでしょうか。

関連するQ&A

  • Digest::Baseについて

    いつもお世話になっております。 Perlモジュールで、Digest::Baseというものが必要になったのですが、 CPANで検索しても見つけることが出来ませんでした。 入手先等ご存じの方がおられましたらご教授下さい。

    • ベストアンサー
    • Perl
  • Perlのモジュールが極端に少ない

    OS(CentOS 6.2 / 64bit)にデフォルトでインストールされているPerl(version 5.10.1)を使って勉強しているのですが、参考書に記載されているメジャーなモジュールがインストールされてなく、困っています。 自分でインストールする必要があるのかと思い、モジュールのインストール方法を調べたところ、CPANというモジュールを使えば簡単にモジュールがインストールできると知ったのですが、このCPANモジュールも入っていない模様。 ではまずはCPANモジュールから手動でインストールしようかと思ったところ、CPANモジュールインストール時のMakefile.PLを実行すると、ExtUtilsというモジュールが無いと怒られてしまい実行できませんでした。 このような場合、通常よく使われるようなモジュールをまとめてインストールするような方法は無いのでしょうか。 ※ちなみに、@INCでは以下のディレクトリが登録されていました。 ・/usr/local/lib64/perl5 ・/usr/local/share/perl5 ・/usr/lib64/perl5/vender_perl ・/usr/share/perl5/vender_perl ・/usr/lib64/perl5 ・/usr/share/perl5

    • ベストアンサー
    • Perl
  • apache で Digest認証

    RailsアプリケーションのあるディレクトリにDigest認証をかけようとしています。 その際に、apache の httpd.conf 内で以下のようなサイトを参考にして、 認証の設定をし、apache を再起動しました。 http://www.atmarkit.co.jp/flinux/rensai/linuxtips/699apachedigest.html しかし、配下のファイルにアクセスすると何も起こらず、記述が間違っているのかと思い、 apache のエラーログを見ました。 すると、以下のように再起動に伴って、設定が適用されたようなログがありました。 Digest: generating secret for digest authentication ... Digest: done モジュールの問題やパスの問題は確認したのですが、認証のウインドウすら出ずに困っています。 何かアドバイスや参考になるサイトがあれば教えて下さい。よろしくお願いします。

  • CPANについて

    perlを始めて間もない初心者です。 Webサイトを構築するにあたって、これを使うとかなり便利になる「CPANにて公開されているモジュール」がありましたら、是非教えて頂きたいのですが。 曖昧な質問で申し訳ございませんが、よろしくお願いいたします。

    • ベストアンサー
    • Perl
  • さくらサーバ(スタンダード)への Web::Scraper(perl

    さくらサーバ(スタンダード)への Web::Scraper(perl モジュール) インストール方法で悩んでます。 いつもお世話になってます。 Web::Scraperというperlモジュールをさくらのレンタルサーバで使用したいのですが、うまくいきません。 参考にしたのは以下のサイトです。 http://houei.sblo.jp/article/35173969.html 正確にはWeb::Scraperはインストールできましたが、以下の部分で止まってしまっています。 【use lib '/home/bashi/perl/lib/perl';】 上記はモジュールを使用するときの、パスの指定かと思うのですが、参考サイトの通り、cpanでWeb::Scraperをインストールしましたが、上記パスにはモジュール等 何もインストールされていません。 別途、設定などが必要なのでしょうか。 他サイトを色々と調べてはみたのですが、当然のように上記同様のパスにperlモジュールがあるような指定がされています。 自力では解決できず、ご質問させていただきました。 何かご教授いただけませんでしょうか。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • オブジェクト指向

    Perlの学習をはじめて2日目の初心者です。 Perlにおいて、オブジェクト指向をもちいて開発をしなくてはならないのです。 何冊か書籍を読んでみたのですが、この開発手法が理解できません。 Perlのモジュールとかを例にあげて、分かりやすく説明をお願いします。 また、参考サイトなどあれは、教えて下さい。

    • ベストアンサー
    • Perl
  • スタンドアロン環境でのCPANモジュールのインストールについて

    Perl初心者ながら一人で開発にはいることになり四苦八苦していますが、 このサイトではいつもお世話になっております。 CPANのモジュールをつかってWEBアプリケーションを つくろうとしているのですが、開発環境がインターネットに接続して いないスタンドアロンな環境です。 このような場合、 ・CPANサイトからtarファイルを1つづつダウンロードしてmake/installするしかないのでしょうか? ・その場合、モジュールの依存関係はどのように把握するのでしょうか? いま、必要と思われるパッケージを入れるたびに、芋づるに式前提パッケージが判明しててまたCPANから落としてくるの繰り返しになっており、ちょっと困っています。 CPAN SHELLがつかえると、依存関係を解決してくれるというのは わかりましたが、スタンドアロン環境の場合は一般的にはどのように するものでしょうか? よろしくお願いいたします。

  • Perlについて教えてください。

    Perlについて教えてください。 私はPerl、Linux(FreeBSD,CentOS)について初心者の為よくわからないので2点質問させてください。 ネットでPerlについて調べたところ 1. WindowsでのPerl開発 = Active Perl(ActiveState社) WindowsでのPerl開発 = OSに最初から組み込まれているもの(違っていたらすみません) との記述がありますが、ActiveState社のHPに行くとWindows,Mac,Linux,SunのActive Perl がありますがActive PerlはそれそれのOSで同じソースががつかえるのでしょうか? 2. Windows XPにActive Perlをインストールしたところ「Perl package Manager」もインストール されていたので、起動してみるとインストールされている(インストールできる)PPMが表示されますが PPM(Perl Package Modeule)=Win32用Perlモジュール CPANのPerlモジュール=Linux用のPerlモジュールと考えていたのですが 両方とも表示されています。 CPANで入手できるPerlモジュールはWindows環境下のActive Perlでもしようできるのですか? 馬鹿な質問と思うのかもしれませんが是非教えてください。

    • ベストアンサー
    • Perl
  • CPANの環境、インストール設定

    1.CPANのモジュールの下準備として必要な環境は、LinuxやCygwin環境を導入していること。 2.以下のサイトの右側にあるDownload: CPAN-1.87.tar.gzをクリックしてダウンロードする。 http://search.cpan.org/~andk/CPAN-1.87/lib/CPAN.pm 3.C:\tempを作り、ここにLhaplusなどのソフトで解凍する。 4.コンソールからcd C:tempに移動して以下のコマンドを打つ。 # perl Makefile.PL # make && make test # make install 5.ホームに戻りコンソールから以下のコマンドを実行する。 perl -MCPAN -e shell ほとんどエンターでOK? 6.二回目にperl -MCPAN -e shellを押してcpanを起動する。 cpan>install Bundle::CPAN などでモジュールをインストールする。 以上のことをやってみたのですが、スクリプトが動きませんでした。 各項目で間違っていることろなどを教えてください。 どこかのサイトではコンパイルが必要と書いてあったのですが、何をコンパイルすればいいのかさっぱりわかりません。ここもアドバイスお願いします。

    • ベストアンサー
    • Perl
  • モジュールのバージョン確認方法

    ローカルにあるテストサーバーに Perlのモジュールをインストールしたのですが、 インストールしたモジュールのバージョンの確認方法が判らず大変困っております。 有識者様お手数ですが、ご教授をお願いできないでしょうか? Perl -vのコマンドでPerlのバージョンは確認できるのですが、モジュールバージョンの確認方法が判らずにこまっております。 ちなみに、バージョンを知りたいモジュールはRSS.pmとなております。 参考: http://search.cpan.org/~abh/XML-RSS-1.10/

    • ベストアンサー
    • Perl

専門家に質問してみよう