Perl入門ゼミ

テキスト処理、Linuxサーバー管理、Web開発ならPerl
  1. Perl
  2. モジュール
  3. here

Digest::MD5 - MD5を使ったダイジェスト値

Digest::MD5モジュールを使用すると、MD5を使ったダイジェスト値を求めることができます。

# モジュールの読み込みと関数のインポート
use Digest::MD5 'md5_hex';

md5_hex関数を使用するとMD5の値を32桁の16進数の文字列として取得できます。

# MD5値を求める
my $md5_sum = md5_hex 'alkeiop2lkj39';

結果は次のような32桁の16進数になります。

# MD5値(16進数の文字列で取得)
fb4b7c4a986c550fce0a645ab425ea6d

Digest::MD5に関するFAQ

Q. 簡単にいうとMD5とはなんでしょうか。

A. 「ある値」から「元の値を推測することがとても難しい値」を作り出す関数のひとつです。ファイルが破損していないかをチェックしたり(ファイルがわずかでも壊れているとMD5値が異なることでチェックできる)、電子署名に用いられたりします。

Q. 他の形式でMD5値を取得することができるでしょうか。

A. はいできます。md5関数を使えばバイナリ形式で、md5_base64関数を使えばbase64形式でMD5値を取得することができます。

Q. より安全なハッシュ関数はありますか

A. より安全なダイジェスト値を取得できるDigest::SHAというモジュールがあります。

  • Perlとはテキスト処理の記述性とパフォーマンスに優れ、正規表現が言語に組み込まれているプログラミング言語です。
  • Linuxサーバーでのフィルタリングプログラム、複数行の文字列を処理、ファイル内容の検索・置換などが得意
  • Perlはgitopensslなど広く普及したUnix/Linuxミドルウェアの補助ツールとして採用実績あり。後方互換性とポータビリティの高さがひとつの理由と推測。
  • 大量のテキストを扱うWeb開発も得意。ロングテールSEOを意識したWebサイト、アドテクやソーシャルゲームでの50ms以内のJSONの生成など。