12. Perl6モジュール

Perl6は汎用プログラミング言語です。以下のものを含むあらゆる仕事に使えます: テキスト処理、画像、ウェブ、データベース、ネットワークプロトコル、などなど

再利用性はとても重要な概念です。プログラマーが新しいことをするたびに車輪の再開発をせずにすむからです。

Perl6では、 モジュール の作成と配布ができます。モジュールはいくつかの機能をまとめて再利用できるようにしたもので、インストールすると使えるようになります。

Panda は、Rakudoについてくるモジュール管理ツールです。

あるモジュールをインストールするには、端末で下のコマンドを打ち込みます:

panda install "モジュールの名前"

Perl6モジュールのディレクトリは、 http://modules.perl6.org/ にあります。

12.1. モジュールを使う

MD5は、128ビットのハッシュ値を作る暗号学的ハッシュ関数です。
MD5は、データベースに保存されるパスワードの暗号化などの応用があります。 新規ユーザー登録の際には、ユーザー情報はそのままの文字として保存されるのではなく、 ハッシュ化 されます。 このようにするのは、たとえデータベースの内容が奪われても、攻撃者にパスワードを知られないようにするためです。

仮に今あなたが、これからデータベースに保存するパスワードのMD5ハッシュを作成する必要があるとしましょう。

幸運なことに、MD5アルゴリズムを実装したPerl6モジュールがすでに存在します。それをインストールしましょう:
panda install Digest::MD5

次のスクリプトを実行しましょう:

use Digest::MD5;
my $password = "password123";
my $hashed-password = Digest::MD5.new.md5_hex($password);

say $hashed-password;

md5_hex() を使ってハッシュ値を作成するために、必要なモジュールを読み込む必要があります。
use キーワードで、スクリプト内で使うモジュールを読み込みます。

実用的には、MD5ハッシュを使うだけでは十分ではありません。辞書攻撃に対して脆弱だからです。
ソルトと組みわせて使うべきです。 https://en.wikipedia.org/wiki/Salt_(cryptography)(英語).