- 締切済み
Digest::MD5について
perlを学びはじめて2ヶ月の初心者です。 「Digest::MD5」というモジュールを勉強しているのですが、CPANサイトを閲覧しても、どのように役立つのかが全く分かりません。 説明お願い致します。 また参考サイトがあれば、紹介ください。 よろしくお願い致します。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- Ethersky
- ベストアンサー率71% (168/235)
> 携帯(モバイル)サイトでは、どのように利用されているのでしょうか? ハッシュの特性上、その用途は絞れます。 ・Javaを利用したアプリケーション(iアプリなど)内で使用(必ず使っているとは限りません。これらのアプリで決済や認証を行うものの場合は使っている可能性があります) ・携帯電話・パソコンを問わずSSL通信等の暗号通信の中での使用。
- Ethersky
- ベストアンサー率71% (168/235)
> 実際WEBの仕組みのどのような部分でつかわれているのか、理解できません。 どのように使われているかは、Dpopさんが紹介した以下のサイボウズの説明の通りです。(「なぜ1方向ハッシュ関数が必要か? 」の項目です) http://cybozu.co.jp/products/md5/md5.html 改竄以外にも、サイズが大きなファイルをダウンロードした際に途中でダウンロードに失敗していないかなど、ファイルが欠落・破損していないかを調べる手段としても利用できます。 ファイルの公開者があらかじめそのファイルのハッシュ値を求めておいて、ファイルと一緒に求めたハッシュ値も公開します。 ファイルをダウンロードした人は、自分でもハッシュ値を求めて公開されていたハッシュ値を比較することで、正しくダウンロードできたかを確認することができます。
補足
迅速な回答どうもありがとうございます。 PCサイトの場合はイメージがわきました。 携帯(モバイル)サイトでは、どのように 利用されているのでしょうか? ご存知でしたら教えてください。
- Ethersky
- ベストアンサー率71% (168/235)
MD5自体はデジタル署名では"ありません"。 デジタル署名の技術中で"使われる"だけであり、MD5そのものが署名となるわけではありません。 MD5はただ一方向要約関数(ハッシュ値を求める関数)であるだけです。 なお、ハッシュ値を求める関数にはMD5以外にもSHA1、SHA256、SHA384、SHA512、RIPEMD128、RIPEMD160、RIPEMD256、RIPEMD320などがあります。 (もちろんこれらをPerlで使うモジュールもCPANにあります。注:現在のところPerlのRIPEMDのモジュールはCPANには160しかないです)
補足
回答ありがとうございます。 MD5の概念は、理解できました。 しかし、実際WEBの仕組みのどのような部分でつかわれているのか、理解できません。 ご存知でしたら、教えていただけないでしょうか。
- Dpop
- ベストアンサー率51% (279/544)
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が表示されています。)
補足
回答ありがとうございます。 MD5の概念は、理解できました。 しかし、実際WEBの仕組みのどのような部分でつかわれているのか、理解できません。 ご存知でしたら、教えていただけないでしょうか。
お礼
回答ありがとうございます。 現在、PC、携帯のサイトをperlにて構築しているのですが、理解すべきことが多岐にわたっているので、苦戦しています。 今後ともよろしくお願い致します。