diff --git a/md5.c b/md5.c new file mode 100644 --- /dev/null +++ b/md5.c @@ -0,0 +1,47 @@ +/** + * test/demos/md5.c + * Copyright (C) 2008 Markus Broeker + */ + +#include +#include +#include +#include + +typedef unsigned char u_char; + +int main (int argc, char **argv) +{ + char buffer[80]; + char text[80]; + + unsigned char *md5_hash; + char result[33]; + char byte[3]; + + int i, j; + + if (argc != 2) { + printf ("Usage: %s \n", argv[0]); + return EXIT_FAILURE; + } + + /* + * MD5 alters the input buffer + */ + strcpy (buffer, argv[1]); + strcpy (text, argv[1]); + + md5_hash = MD5 ((u_char *) buffer, strlen (buffer), NULL); + + for (i = 0, j = 0; i < 16; i++) { + sprintf (byte, "%02x", (md5_hash[i] & 0xFF)); + result[j++] = byte[0]; + result[j++] = byte[1]; + } + + result[j] = 0; + printf ("%s: %s\n", text, result); + + return EXIT_SUCCESS; +}