• ベストアンサー

Cでmd5を使うには

perlで use Digest::MD5; を使ってmd5のハッシュを使ったプログラムがあります。 同じような md5 の処理をCでやる場合はどんなライブラリを使えばいいのでしょうか? 環境は linux(centos 5.3)でgcc 4.1.2です。

質問者が選んだベストアンサー

  • ベストアンサー
  • mtaka2
  • ベストアンサー率73% (867/1179)
回答No.2

MD5のアルゴリズムを定めているRFC1321には、C言語による実装が付いてます。 C言語からなら、それがそのまま利用できます。 http://www.akanko.net/marimo/data/rfc/rfc1321-jp.txt

moritan2
質問者

お礼

ありがとうございました。 利用できることを確認しました。

その他の回答 (1)

  • kt1965
  • ベストアンサー率34% (116/339)
回答No.1

回答します。 参考URLには、Debian Packageのリンクを張っておきます。 検索エンジンで、「md5 Cライブラリ」とやると一杯出てきますので、好きなのを選ぶと良いでしょう。 では。

参考URL:
http://packages.debian.org/ja/sid/liblua5.1-md5-0
moritan2
質問者

お礼

ご回答ありがとうございました。

関連するQ&A

  • perlのDigest::MD5;でのMD5算出が異なる

    perlのDigest::MD5;でのMD5算出が異なる 下記、スクリプトをレンタルサーバ上と、WindowsOS上で走らせてみたところ、おなじファイルにも関わらず、MD5が異なります。 何故でしょうか? #!/usr/local/bin/perl use strict; use warnings; use Digest::MD5; my $file = 'test.zip'; my $ctx = Digest::MD5->new; open my $fh, "<$file"; $ctx->addfile($fh); my $md5 = $ctx->hexdigest; close($fh); open my $fh2, ">>md5.txt"; print $fh2 "$file $md5\n"; print "$file $md5\n"; close $fh2;

    • ベストアンサー
    • Perl
  • (visual)C++から(active)perlを呼ぶ

    Vista sp1 64 bit, visual C++ 2008 express, active perl 5.1を使用しています。 しばらくの間active perlを使ってテキスト処理のスクリプトを書き溜めてきました。 最近になってC++ を使うようになり、今後はC++中心にプログラミングをしていこうと思っています。 ただ、これまで書き溜めたperlスクリプトをどうにかしてC++で再利用できないかと思っています。またテキスト処理に関してはC++よりやはりperl が優れていると感じ、C++ のプログラムを主体として必要に応じてその中にperlのスクリプトを組み込みたいと考えています。 たとえばテキストファイルを読み込みや最終的な出力するのはメインのC++で書き、各行のテキスト処理はC++からperlのサブルーチンにデータを渡して処理するというような形です。 perlのドキュメントを見る限りではperlembedがこの目的に適しているようでした。 http://perldoc.jp/docs/perl/5.10.0/perlembed.pod サンプルコードなども書いてあるのですが、どうやらunix環境、gcc(?)の例のみのようです。 windows環境でvisual C++ とactive perlを用いて C++からperlを呼び出すようなプログラムを書くにはvisual c++の設定をどのようにしたらよいでしょうか?

  • Linuxで、標準Cライブラリが読み込まれず、C言語プログラミングができません・・・

    僕の問題はタイトルの通りで、標準Cライブラリが読み込まれていないようで、C言語プログラミングができません。 ubuntuのオフィシャルから日本語ローカライズドDesktopCDをダウンロードして、空のHDDにインストールしました。 ですが、gnome-terminalからccコマンドでプログラムをコンパイルしても、標準Cライブラリにあるはずの<stdio.h>が認識されず、続くprinft関数も読んでくれません。 これはどうしてでしょうか?LinuxはデフォルトでCやらJAVAやらのプログラミングの環境が整っているものだと思っていたので、戸惑っています。何か、セットアップが必要なのでしょうか。 ちなみに、gccでも、標準ライブラリは読み込まれませんでした。

  • どなたか教えて下さい。

    どなたか教えて下さい。 仕事でデータのハッシュ値を求める必要がありまして、質問致します。 ハッシュ値はマイクロソフトが提供しているfciv.exeというソフトを使い、希望のファイルのハッシュ値が、正しいことを確認しました。(正しいのは当たり前でしょうが・・・) 多少perlの知識がありましたので、perlで他の方のHPを参考にしながら、ハッシュ値を計算したところ、fcivと異なってしまって、誤った値が出ます。 何がおかしいのでしょうか? 作成したperlプログラム↓ use strict; use Digest::SHA1 qw(sha1_hex); open (INFILE,">c:\a_test.txt"); my %file = <INFILE>; print sha1_hex(%file),"\n"; close(INFILE); ちなみに開くファイルに指定したa_test.txtにはSHIFT_JISで「A」を40個入れてみました。 FCIVでは、a_test.txtの回答が5cdbb...で上記perlプログラムだとda39a3...になります。 ちなみに、a_testと名前を変え、バイナリーデータも同じように作成しましたが、 FCIVでは、回答が、5efef....上記perlプログラムではda39a3...となり、perlプログラムの方ではバイナリとテキストが同じ値になってしまいます。 ハッシュ値をよく理解してないことに問題があるのは承知ですが、どなたかプログラムの修正、ご指導宜しくお願いします。

    • ベストアンサー
    • Perl
  • C++プログラムをCで呼び出したい

    こんにちは。質問させていただきます。 現在、Linux/GCC3.2.3系でC言語の開発をしています。 私自身のレベルとしては、C言語での実務は1年未満。C++はゼロ。本業はJavaプログラマを数年やっております。 さっそく本題です。 既にC++で作成されたある一連のプログラム群(20本程度)があり、これらC++の関数をC言語で作成されたプログラムから呼び出して使用したいと思っています。 C++プログラムは既にテスト済みなので、これらのソースは基本的には手を加えず、そのままライブラリ化などして使用したいと考えています。 そこで質問なのですが、C言語から呼び出せるような形式でC++ソースをライブラリ化する方法と、C言語からの呼び出し方を教えていただけないでしょうか?

  • WindowsでのC と LinuxでのC の違いについて

    これから、Linux OSでC言語のプログラミングを行うことになりました。ディストリビューションはVine Linux 3.2 を利用します。 開発方法としては、Windows Xp 上でgccを利用できるIDE(Dev-C++ 4.9.9.2を利用します)で開発を行い(テスト的にコンパイル)、できたソースをLinux上でコンパイル・リンクするという方法で行おうと考えています。 そこで、疑問があります。 ANSIライブラリの中にはシステムコールを実行するものがあると思います。システムコールはOSの一部の機能ということですので、WindowsとLinuxとでは当然その機能は違ってくると思います。 つまり、WindowsでANSIライブラリを利用して実装したプログラム(コンパイルもとおる)がLinux上で正常に機能するのか(そもそもコンパイルがとおるか)がわかりません。 どなたかご教授いただけましたら幸いです。 宜しくお願いします。

  • gprofはprintfのようなCの標準ライブラリ関数で使われたコスト

    gprofはprintfのようなCの標準ライブラリ関数で使われたコストを どのように認識するのでしょうか? 普通にプロファイルしたいプログラムをmakeしても、標準ライブラリの 関数が処理時間・呼ばれた回数の一覧に出てきません。 gprofは次のどちらとして処理しているでしょうか? ・呼ぼうとしてる親関数の処理時間に、標準ライブラリ関数の時間が含まれる。 ・標準ライブラリ関数の処理時間はまるまる抜け落ちる Linux環境(SLES 10)で、gprofを使ってCで書かれたプログラムの チューニングを行えるかチェックしています。 ただし、OSレベルまでいじりたくないので、-pgオプションをつけて ライブラリを再コンパイルするのは考えていません。 以上、よろしくお願いします。

  • C言語で作ったらWindowsでもMacでもLinuxでも動くんですか?

    Linuxでgccを使ってC言語を勉強してます。 Linuxのgccでコンパイルして作ったプログラムはWindowsでもMacでも動くんでしょうか? 逆にWindowsで作ったのはとか、Macで作ったのは他のOSで動くんだろうかと疑問で・・・。 教えてください!!

  • C言語(gcc), Linux, FTPプログラミング

    C言語でFTPを使用してあるサーバからデータをダウンロードするプログラムを作りたいのですが、短期間で作らなければならない為、なるべく作り込みはしたくないのです。 FTPを扱うライブラリのようなものがあるのが一番ありがたいのですが、ご存じないでしょうか? 条件としては ・gccのバージョン3~4ぐらいで使えること。 ・Solaris,RedHatなど主要なLinuxで使えること。 ・ライセンスの制限がなるべく無いこと。 以上、よろしくお願いいたします。

  • C++BuilderXPersonal(for Linux)

    を今日インストールして Linux GUIプログラムを作ろうとしたのですが どうやらこれはコンソールプログラムしかできないようです コンソールプログラムならばC++コマンド使ったほうが断然作りやすいので骨折り損でした gccを使って Linux GUIプログラムを作りたいのですが作り方を分かりやすく紹介しているサイトはないでしょうか?

専門家に質問してみよう