HTML::TemplateとDigest::MD5

数日前、結構制限された環境のサーバ用に掲示板を作っていた時、テンプレートシステムにHTML::Templateを使っていたのだが、内部でロードされているDigest::MD5が存在しない為に動かないと言う事があった。HTML::Templateの中身を読んでみると、md5_hexを一回だけ呼んでいる。これ、何に使っているのだろう。どうも、一時データの保管用に使っているような気がするのだが。

依存関係をクリアするのが難しかったので、一時データの名称と仮定し、use Digest::MD5をコメントアウト、md5_hexを引数のデータからランダムに作成した文字列+time+$$を返すように変更し、動作させる。特に問題は起きていないが、ちょっと気持ち悪いものがある。

md5は一方向ハッシュ関数だから、得られたデータから逆に何かを復帰する事は無い(はず)。従って、ランダム文字列を作成するのであれば、md5に頼る必要もないと思われる。無論、被ってしまうと問題なので、その辺は考えなければならず、md5を使う理由はそこなのかも知れないが…。