1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
/*
** Copyright 1998 - 2000 Double Precision, Inc.
** See COPYING for distribution information.
*/
#include "md5.h"
#include <stdio.h>
#include <string.h>
int main()
{
static const char * const teststr[]={
"",
"a",
"abc",
"message digest",
"abcdefghijklmnopqrstuvwxyz",
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",
"12345678901234567890123456789012345678901234567890123456789012345678901234567890"};
char *salts[4]={"abcdef","01234567","76543210","QWERTY"};
char *passwds[4]={ "rosebud",
"trust noone",
"trust, but verify",
"for the world is hollow, and I have touched the sky"};
int i,j;
printf("MD5 test suite:\n");
for (i=0; i<(int)sizeof(teststr)/sizeof(teststr[0]); i++)
{
MD5_DIGEST digest;
md5_digest(teststr[i], strlen(teststr[i]), digest);
printf("MD5 (\"%s\") = ", teststr[i]);
for (j=0; j<sizeof(digest); j++)
printf("%02x", digest[j]);
printf("\n");
}
for (i=0; i<sizeof(salts)/sizeof(salts[0]); i++)
printf("Salt: %s\nPassword: %s\nHash:%s\n\n",
salts[i], passwds[i],
md5_crypt_redhat(passwds[i], salts[i]));
return (0);
}
|