md5.c
changeset 45 7197576fedcf
child 77 49e0babccb23
new file mode 100644
--- /dev/null
+++ b/md5.c
@@ -0,0 +1,47 @@
+/**
+ * test/demos/md5.c
+ * Copyright (C) 2008 Markus Broeker
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <openssl/md5.h>
+
+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 <text>\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;
+}