「MD5」の版間の差分

提供: セキュリティ
移動: 案内検索
行18: 行18:
 
== 使い方 ==
 
== 使い方 ==
 
[[MD5]]の求め方を説明します。
 
[[MD5]]の求め方を説明します。
 +
=== OpenSSLコマンド ===
 +
[[OpenSSL]]コマンドでも[[MD5]]を求められます。OpenSSLコマンドを利用すると、いろいろなUnix環境で共通化できます。
 +
 +
plain.txt の [[MD5]]を求める例です。
 +
<syntaxhighlight lang="bash">
 +
$ openssl dgst -md5 plain.txt
 +
</syntaxhighlight>
 +
 +
標準入力を扱う場合は、以下の通りです。
 +
<syntaxhighlight lang="bash">
 +
% echo hoge | openssl dgst -md5
 +
c59548c3c576228486a1f0037eb16a1b
 +
</syntaxhighlight>
 +
 +
[[MD5]]をバイナリ形式で出力します。
 +
<syntaxhighlight lang="bash">
 +
$ openssl dgst -md5 -binary plain.txt > plain.txt.md5
 +
</syntaxhighlight>
 +
 +
HMACを求める例です。
 +
<syntaxhighlight lang="bash">
 +
$ openssl dgst -md5 -hmac 'secret' plain.txt > plain.txt.md5
 +
</syntaxhighlight>
 +
 +
コロン区切りで出力します。
 +
<syntaxhighlight lang="bash">
 +
% echo hoge | openssl dgst -md5 -c
 +
c5:95:48:c3:c5:76:22:84:86:a1:f0:03:7e:b1:6a:1b
 +
</syntaxhighlight>
 +
=== md5sumコマンド ===
 +
Linuxには、md5sumコマンドがあります。
 +
 +
ファイルのmd5を求めるには、以下の通りです。
 +
<syntaxhighlight lang="bash">
 +
$ md5sum /bin/ls
 +
</syntaxhighlight>
 +
=== md5コマンド ===
 
ここでは、[[FreeBSD]]のmd5コマンドを用います。
 
ここでは、[[FreeBSD]]のmd5コマンドを用います。
 
[[Linux]]では、md5sumを利用してください。
 
[[Linux]]では、md5sumを利用してください。
行31: 行68:
 
% md5 /COPYRIGHT
 
% md5 /COPYRIGHT
 
MD5 (/COPYRIGHT) = 8bf4da0bcda130c2fe3a41ab7bc48738
 
MD5 (/COPYRIGHT) = 8bf4da0bcda130c2fe3a41ab7bc48738
 +
</syntaxhighlight>
 +
=== PHPでのMD5の求め方 ===
 +
<syntaxhighlight lang="php">
 +
<?php
 +
$hash = md5 ( $input );
 +
?>
 +
</syntaxhighlight>
 +
 +
第二引数をTRUEにすると、16バイト長のバイナリ形式で返します。
 +
<syntaxhighlight lang="php">
 +
<?php
 +
$hash = md5 ( $input, true );
 +
?>
 +
</syntaxhighlight>
 +
 +
ファイルのMD5を求める場合には、md5_file()を利用します。
 +
<syntaxhighlight lang="bash">
 +
<?php
 +
$hash = md5_file ( "/bin/ls" );
 +
?>
 
</syntaxhighlight>
 
</syntaxhighlight>
 
== MD5のクラッキング ==
 
== MD5のクラッキング ==

2015年5月23日 (土) 22:11時点における版

MD5 は、 Message Digest Algorithm 5 です。128ビットのハッシュ値を出力するハッシュ関数です。

読み方

MD5
えむでぃーふぁいぶ

概要

MD5 は、 Message Digest Algorithm 5 です。128ビットのハッシュ値を出力するハッシュ関数です。2^128 (340京の1京倍)通りのハッシュ値をとります。MD4は、MD5の前身で、MD4の安全性を向上させたものがMD5です。 MD5は、データの改ざんや破損の検出にMD5チェックサムとして用いられます。

ハッシュ値 = md5 ( 入力データ )

パスワードの暗号化

以前は、Unixのアカウントのパスワードの暗号化のためにMD5が利用されていました。

安全性

SHA-256(SHA-2)以上が推奨されます。

MD5のコマンド

使い方

MD5の求め方を説明します。

OpenSSLコマンド

OpenSSLコマンドでもMD5を求められます。OpenSSLコマンドを利用すると、いろいろなUnix環境で共通化できます。

plain.txt の MD5を求める例です。

$ openssl dgst -md5 plain.txt

標準入力を扱う場合は、以下の通りです。

% echo hoge | openssl dgst -md5
c59548c3c576228486a1f0037eb16a1b

MD5をバイナリ形式で出力します。

$ openssl dgst -md5 -binary plain.txt > plain.txt.md5

HMACを求める例です。

$ openssl dgst -md5 -hmac 'secret' plain.txt > plain.txt.md5

コロン区切りで出力します。

% echo hoge | openssl dgst -md5 -c
c5:95:48:c3:c5:76:22:84:86:a1:f0:03:7e:b1:6a:1b

md5sumコマンド

Linuxには、md5sumコマンドがあります。

ファイルのmd5を求めるには、以下の通りです。

$ md5sum /bin/ls

md5コマンド

ここでは、FreeBSDのmd5コマンドを用います。 Linuxでは、md5sumを利用してください。

文字列から MD5 を求める例です。

% md5 -s hoge
MD5 ("hoge") = ea703e7aa1efda0064eaa507d9e8ab7e

ファイルから MD5 を求める例です。

% md5 /COPYRIGHT
MD5 (/COPYRIGHT) = 8bf4da0bcda130c2fe3a41ab7bc48738

PHPでのMD5の求め方

<?php
$hash = md5 ( $input );
?>

第二引数をTRUEにすると、16バイト長のバイナリ形式で返します。

<?php
$hash = md5 ( $input, true );
?>

ファイルのMD5を求める場合には、md5_file()を利用します。

<?php
$hash = md5_file ( "/bin/ls" );
?>

MD5のクラッキング

MD5 オンラインクラッカー

MD5 オフラインクラッカー

関連項目