MD5
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を求める場合には、複数のファイルを引数で指定します。
$ md5sum a.txt b.txt 60b725f10c9c85c70d97880dfe8191b3 a.txt 3b5d5c3712955042212316173ccf37be b.txt
ISOイメージなどを配布している、ftpなどのダウンロードサイトでは、ダウンロードしたファイルが壊れていないか確認するための、チェックサムファイルを一緒に配布しています。 MD5のチェックサムファイルを作成します。
md5sum a.txt b.txt > MD5SUMS
md5sumコマンドを利用して、ファイルのハッシュ値を確認します。
$ md5sum a.txt b.txt > MD5SUMS $ ls MD5SUMS a.txt b.txt $ md5sum -c MD5SUMS a.txt: OK b.txt: OK
このように、ファイルが壊れていないか、簡単に確認できます。
md5コマンド
ここでは、FreeBSDのmd5コマンドを用います。 Linuxでは、md5sumを利用してください。
文字列から MD5 を求める例です。
% md5 -s hoge MD5 ("hoge") = ea703e7aa1efda0064eaa507d9e8ab7e
ファイルから MD5 を求める例です。
% md5 /COPYRIGHT MD5 (/COPYRIGHT) = 8bf4da0bcda130c2fe3a41ab7bc48738
WindowsでMD5を計算する fciv
WindowsでMD5を計算するには、FCIV(File Checksum Integrity Verifier)を使用します。デフォルトでは、インストールされていないため、FCIV をインストールします。
MD5を計算するには、コマンドプロンプトを起動します。
不正な言語名です。
以下のように言語を指定する必要があります: <source lang="html4strict">...</source>
構文ハイライト機能に対応している言語は以下の通りです:
4cs, 6502acme, 6502kickass, 6502tasm, 68000devpac, abap, actionscript, actionscript3, ada, algol68, apache, applescript, apt_sources, asm, asp, autoconf, autohotkey, autoit, avisynth, awk, bascomavr, bash, basic4gl, bf, bibtex, blitzbasic, bnf, boo, c, c_loadrunner, c_mac, caddcl, cadlisp, cfdg, cfm, chaiscript, cil, clojure, cmake, cobol, coffeescript, cpp, cpp-qt, csharp, css, cuesheet, d, dcs, delphi, diff, div, dos, dot, e, ecmascript, eiffel, email, epc, erlang, euphoria, f1, falcon, fo, fortran, freebasic, fsharp, gambas, gdb, genero, genie, gettext, glsl, gml, gnuplot, go, groovy, gwbasic, haskell, hicest, hq9plus, html4strict, html5, icon, idl, ini, inno, intercal, io, j, java, java5, javascript, jquery, kixtart, klonec, klonecpp, latex, lb, lisp, llvm, locobasic, logtalk, lolcode, lotusformulas, lotusscript, lscript, lsl2, lua, m68k, magiksf, make, mapbasic, matlab, mirc, mmix, modula2, modula3, mpasm, mxml, mysql, newlisp, nsis, oberon2, objc, objeck, ocaml, ocaml-brief, oobas, oracle11, oracle8, oxygene, oz, pascal, pcre, per, perl, perl6, pf, php, php-brief, pic16, pike, pixelbender, pli, plsql, postgresql, povray, powerbuilder, powershell, proftpd, progress, prolog, properties, providex, purebasic, pycon, python, q, qbasic, rails, rebol, reg, robots, rpmspec, rsplus, ruby, sas, scala, scheme, scilab, sdlbasic, smalltalk, smarty, sql, systemverilog, tcl, teraterm, text, thinbasic, tsql, typoscript, unicon, uscript, vala, vb, vbnet, verilog, vhdl, vim, visualfoxpro, visualprolog, whitespace, whois, winbatch, xbasic, xml, xorg_conf, xpp, yaml, z80, zxbasic
C:\> fciv -md5 file.txt
なお、fcivでSHA-1も計算できます。
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 オフラインクラッカー
関連項目
ツイート