CodingFirst

C言語、Perl、JavaScript、最近はPythonも。出来上がったものより、プログラムを書くことが好き。あと、スイーツ。

スポンサーサイト

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

C言語でmd5

  • このエントリーをはてなブックマークに追加
  • web拍手 by FC2

C言語でmd5を計算する。

MD5は、ファイルの指紋(フィンガープリント)としてよく使われてる。
用語的にはMD5チェックサムの方が一般的かも。

MD5 - Wikipedia

あやまって一致する事はまず無いので、
ダウンロードしたデータの正当性とか、Jenkinsのようにビルドの追跡とか、
要するに、テストの期待値を圧縮する手段としてよく利用される。

MD5は linux だと簡単に下のように計算できる。

$ openssl dgst -md5 fox.jpg 
MD5(fox.jpg)= c7880ecd95d8dcf0efe82f465aa41e3f

$ md5sum fox.jpg 
c7880ecd95d8dcf0efe82f465aa41e3f  fox.jpg

C言語でも使いたい事がある。
簡単に使いたいので openssl を利用する。まず、環境入手。

$ sudo apt-get install libssl-dev

MD5を計算する Cコードは以下。

$ tcc "-lssl" -run md5sum-1.c fox.jpg 
c7880ecd95d8dcf0efe82f465aa41e3f	fox.jpg
$ tcc "-lssl" -run md5sum-2.c fox.jpg 
c7880ecd95d8dcf0efe82f465aa41e3f	fox.jpg

2番目の方、後で文字列を追加する(ループする)には、
どうすればいいかよくわからんかった。まぁマジックナンバーが必要だし、 1番目のケースしか使わなけりゃいいか。

参考)
チェックサム - Wikipedia
巡回冗長検査 - Wikipedia(CRC)
MD5 - Wikipedia

Cソースを見ながら学ぶなら、やっぱアルゴリズム辞典。


C言語による最新アルゴリズム事典 (ソフトウェアテクノロジー)C言語による最新アルゴリズム事典 (ソフトウェアテクノロジー)
(1991/03)
奥村 晴彦

商品詳細を見る
スポンサーサイト

 | HOME | 

Search

Recent Entries

Foot Print



Categories

Monthly

Recent Comments

Recent Trackbacks

Profile

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。