002
12.10.2007, 14:46 Uhr
0xdeadbeef
Gott (Operator)
|
Ich würd mir das um ne bestehende Bibliothek herumbauen. gcrypt zum Beispiel hat schon ein recht objektorientiertes Design, nur halt in C - zum Beispiel
C++: |
#include <gcrypt.h>
#include <stddef.h> #include <stdio.h>
int main(int argc, char *argv[]) { FILE *in; char inbuf[BUFSIZ]; unsigned char *hptr; size_t i, chars_read; gcry_md_hd_t hash;
if(argc != 2) return -1;
in = fopen(argv[1], "r");
if(in == NULL) return -1;
gcry_check_version(NULL);
gcry_md_open(&hash, GCRY_MD_MD5, 0);
while((chars_read = fread(inbuf, sizeof(char), BUFSIZ, in)) > 0) { gcry_md_write(hash, inbuf, chars_read); }
hptr = gcry_md_read(hash, GCRY_MD_MD5);
for(i = 0; i < gcry_md_get_algo_dlen(GCRY_MD_MD5); ++i) { printf("%02x", hptr[i]); } putchar('\n');
gcry_md_close(hash); fclose(in);
return 0; }
|
...sollte recht einfach sein, da ne Klasse drumherum zu schustern. -- Einfachheit ist Voraussetzung für Zuverlässigkeit. -- Edsger Wybe Dijkstra |