#include <mhash.h>
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
int i;
MHASH td;
unsigned char buffer;
unsigned char *hash;
td = mhash_init(MHASH_WHIRLPOOL);
if (td == MHASH_FAILED) exit(1);
while (fread(&buffer, 1, 1, stdin) == 1) {
mhash(td, &buffer, 1);
}
hash = mhash_end(td);
for (i = 0; i < mhash_get_block_size(MHASH_WHIRLPOOL); i++) {
printf("%.2x", hash[i]);
}
printf("\n");
exit(0);
}
こんにちは、mhash のサンプル ページの上記のコードがあります。私はそれを変更する必要があるので、stdin
を待つ代わりに、から読み取り続け、行ごとにハッシュを計算しますEOF
cat textfile | whirlpool_line_hash
私の理解では、( を待機するEOF
) while ループを保持し、10 (0x0a) を受け取った後にハッシュ計算と出力を行います。print mhash をリセットする必要がありますよね?私は C にはまったく興味がありませんが、高速なプログラムが必要なので、C で実行したいと考えています。既にポインターと整数の比較に失敗しています ;-) 誰か助けてもらえますか?