aboutsummaryrefslogtreecommitdiff
path: root/ja_JP.eucJP/man/man3/md5.3
blob: db694369f08561db35b3c8b3bf791a4b6aa414ae (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
.\"
.\" ----------------------------------------------------------------------------
.\" "THE BEER-WARE LICENSE" (Revision 42):
.\" <phk@login.dkuug.dk> wrote this file.  As long as you retain this notice you
.\" can do whatever you want with this stuff. If we meet some day, and you think
.\" this stuff is worth it, you can buy me a beer in return.   Poul-Henning Kamp
.\" ----------------------------------------------------------------------------
.\"
.\" 	%Id: md5.3,v 1.13 1998/03/27 10:22:07 phk Exp %
.\"
.\" $FreeBSD$
.Dd October 9, 1996
.Dt MD5 3
.Os FreeBSD 2
.Sh 名称
.Nm MD5Init ,
.Nm MD5Update ,
.Nm MD5Pad ,
.Nm MD5Final ,
.Nm MD5End ,
.Nm MD5File ,
.Nm MD5Data
.Nd RSA Data Security 社の ``MD5'' メッセージダイジェストを計算する
.Sh 書式
.Fd #include <sys/types.h>
.Fd #include <md5.h>
.Ft void
.Fn MD5Init "MD5_CTX *context"
.Ft void
.Fn MD5Update "MD5_CTX *context" "const unsigned char *data" "unsigned int len"
.Ft void
.Fn MD5Pad "MD5_CTX *context"
.Ft void
.Fn MD5Final "unsigned char digest[16]" "MD5_CTX *context"
.Ft "char *"
.Fn MD5End "MD5_CTX *context" "char *buf"
.Ft "char *"
.Fn MD5File "const char *filename" "char *buf"
.Ft "char *"
.Fn MD5Data "const unsigned char *data" "unsigned int len" "char *buf"
.Sh 解説
MD5 関数群は、任意の数の入力バイトについて
128 ビット暗号チェックサム ( ダイジェスト ) を計算します。
暗号チェックサムは一方向ハッシュ関数なので
特定出力に対応する入力を ( 徹底的な検索を除いて) 見つけることはできません。
結果的には入力データの「指紋」しか見つからず、
実際の入力が明らかになることはありません。
.Pp
MD2 は最も遅く、 MD4 は最も高速で、 MD5 はその中間です。
MD2 は、プライバシが重要なメールのみで使用できます。
MD4 は弱すぎると酷評されたため、
「安全ベルトを付けた MD4」として MD5 が開発されました。
疑わしいときは MD5 を使用してください。
.Pp
.Fn MD5Init ,
.Fn MD5Update ,
.Fn MD5Final
関数は中心的な関数群です。
MD5_CTX を割り当て、
.Fn MD5Init
で初期化し、
.Fn MD5Update
でデータを処理し、最後に
.Fn MD5Final
で結果を取り出してください。
.Pp
.Fn MD5Pad
は、計算を終了しないで
.Fn MD5Final
と同じ方法でメッセージデータをつめることができます。
.Pp
.Fn MD5End
は
.Fn MD5Final
のラッパで、
16 進 128 ビットを表現する
33 文字 ( 最後の「 \e0 」を含む ) の
.Tn ASCII
文字列に戻り値を変換します。
.Pp
.Fn MD5File
はファイルのダイジェストを計算し、
.Fn MD5End
を使用して結果を返します。
ファイルを開けない場合はヌルポインタを返します。
.Fn MD5Data
はメモリに存在するデータのダイジェストを計算し、
.Fn MD5End
を使用して結果を返します。
.Pp
.Fn MD5End ,
.Fn MD5File ,
.Fn MD5Data
の使用にあたっては
.Ar buf
を NULL ポインタとすることができます。
この場合は
.Xr malloc 3
で割り当てられた文字列が返されるので、使用後は
.Xr free 3
で割り当てを解除しなければなりません。
.Ar buf
が NULL でない時は、少なくとも 33 文字分のバッファを
指していなければなりません。
.Sh 関連項目
.Xr md2 3 ,
.Xr md4 3 ,
.Xr md5 3
.Rs
.%A B. Kaliski
.%T The MD2 Message-Digest Algorithm
.%O RFC 1319
.Re
.Rs
.%A R. Rivest
.%T The MD4 Message-Digest Algorithm
.%O RFC 1186
.Re
.Rs
.%A R. Rivest
.%T The MD5 Message-Digest Algorithm
.%O RFC 1321
.Re
.Rs
.%A RSA Laboratories 
.%T Frequently Asked Questions About today's Cryptography
.Re
.Sh 作者
オリジナルの MD5 ルーチンは、
.Tn RSA
Data Security 社によって開発され、
上記のリファレンスで公開されました。
このコードは、
.An Poul-Henning Kamp Aq phk@login.dkuug.dk
により、この実装から直接引き出されています。
.Pp
Phk ristede runen.
.Sh 歴史
この関数は、
.Fx 2.0
で現れました。
.Sh バグ
同じハッシュ値を持つような 2 つのファイルを見つける方法、
または特定のハッシュ値を持つようなファイルを見つける方法は
知られていません。
一方、そのような方法が存在しないという保証もありません。
.Pp
MD2 は、プライバシが重要なメールに使用する場合のみライセンス供与されます。
その他の場合は MD4 か MD5 を使用してください。
.Pp
.Sh COPYRIGHT
Copyright (C) 1991-2, RSA Data Security, Inc. Created 1991. All
rights reserved.
.Pp
このソフトウェアの複製や使用のためのライセンスは、
このソフトウェアやこの関数について言及したり参照したりする
すべての資料で
「 RSA Data Security 社の MD2 メッセージダイジェストアルゴリズム」
であることが明示されていれば、
プライバシが重要となる非営利インターネットメールに供与されます。
.Pp
RSA Data Security 社は、このソフトウェアの商業性、またはこの
特定の目的に対するこのソフトウェアの適合性について表明しません。
このソフトウェアは、いかなる種類の、明示的または暗黙的な保証もなく、
「現状のまま」で提供されます。
.Pp
この警告は、この文書かソフトウェア、またはその両方のすべてのコピーに
掲載しなければなりません。