Perl入門ゼミ

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

Digest::SHA - SHAによるダイジェスト値を求める

Digest::SHAモジュールを使用すると、各種SHAの値を求めることができます。SHA-1値を求めるには以下の関数を使います。

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

sha1_hex関数を使用するとSHA-1の値を40桁の16進数の文字列として取得できます。

# SHA-1値を求める
my $sha1_sum = sha1_hex 'alkeiop2lkj39';

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

# SHA-1値(16進数の文字列で取得)
20b07a8050be5dd980b1c17109fbbffaf3194498

Digest::SHAに関するFAQ

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

A. 「ある値」から「元の値を推測することがとても難しい値」を作り出す関数のひとつです。ファイルが破損していないかをチェックしたり(ファイルがわずかでも壊れているとSHA値が異なることでチェックできる)、電子署名に用いられたりします。SHAは同じ機能を持つMD5よりも推測されにくいです。MD5値を求めるのにはDigest::MD5モジュールを使用することができます。

Q. 他の形式でSHA-1値を取得することができますか。

A. はいできます。sha1関数を使えばバイナリ形式で、sha1_base64関数を使えばbase64形式でSHA-1値を取得することができます。

Q. SHA-1以外に、強度の高いSHA-256、SHA-384、SHA-512などが存在しますが、それらを利用することはできますか。

A. はいできます。次の関数があります。

# バイナリ形式
sha1
sha224
sha256
sha384
sha512

# 16進数文字列
sha1_hex
sha224_hex
sha256_hex
sha384_hex
sha512_hex

# base64形式
sha1_base64
sha224_base64
sha256_base64
sha384_base64
sha512_base64
Giblog