Hi Ken,
Yes, hash can contain printable as well as
nonprintable chars.As I mentioned this code
was working with other strings and giving
correct hash length(16).To eliminate this
issue, i converted these chars to hex.
Now code look like this:
#include <stdio.h>
#include "openssl/md5.h"
void hexprint(unsigned char *data, int len)
{
int i;
for(i = 0;i < len;i++)
{ /* "%02x" for lowercase, "%02X" for
uppercase hexidecimal letters */
printf("%02x", data[i]);
}
}
int main()
{
unsigned char var[]="k.";
unsigned char *op;
op = MD5(var,strlen(var),NULL);
hexprint(op, strlen(op));
return 0;
}
Atleast this should work ..but its not
working either for string "k.". For any
other string working perfectly.
Wonder if its a bug!
Thanks,
Kaustubh
--- Ken Goldman <[EMAIL PROTECTED]> wrote:
> > Date: Tue, 19 Jul 2005 04:30:03 -0700 (PDT)
> > From: kaustubh mendki <[EMAIL PROTECTED]>
> >
> > I am trying a simple program to get MD5 hash of
> > any string.The program is as follows:
> >
> > #include <stdio.h>
> > #include "openssl/md5.h"
> >
> > int main()
> > {
> > unsigned char var[]="k.";
> > unsigned char *op;
> >
> > op = MD5(var,strlen(var),NULL);
> > printf("\nHash= %s\tLen= %d",op,
> strlen(op));
> > return 0;
> > }
> >
> > I compiled it with: gcc -lcrypto -o try try.c
> > The above code is returning empty hash with 0
> length.
> > But with strings like ".", "k.a" this code is
> > working properly.
> >
> > Can anyone throw light on it?
>
> Hashes are not printable C strings. They are byte
> arrays. Thus,
> printf and strlen will both fail.
>
> --
> Ken Goldman [EMAIL PROTECTED] 914-784-7646
>
__________________________________
Do you Yahoo!?
Yahoo! Mail - You care about security. So do we.
http://promotions.yahoo.com/new_mail
______________________________________________________________________
OpenSSL Project http://www.openssl.org
User Support Mailing List [email protected]
Automated List Manager [EMAIL PROTECTED]