473,508 Members | 2,053 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

How to generate a md5 hash?

Hi, this is my first post here and I'm very very new in 'C'
programming.
And I began to 'translate' my PHP program, that beyond a lot of things
generates a md5 hash, and I must generate a md5 hash in 'C' , but I
cant found it anywhere.
I've readed the crypt.h man page, I read twice the post in
http://groups.google.com.br/group/co...4b37481e4d0b48

But I still dont know how to generate a md5 hash from my string
'testing' for example.

Plz, if anyone can help me I'd be glad

Thanks

Nov 15 '05 #1
16 10685


dutche wrote:
Hi, this is my first post here and I'm very very new in 'C'
programming.
And I began to 'translate' my PHP program, that beyond a lot of things
generates a md5 hash, and I must generate a md5 hash in 'C' , but I
cant found it anywhere.
I've readed the crypt.h man page, I read twice the post in
http://groups.google.com.br/group/co...4b37481e4d0b48

But I still dont know how to generate a md5 hash from my string
'testing' for example.


The RFC that defines MD5 contains a sample C
implementation.

--
Er*********@sun.com

Nov 15 '05 #2
"dutche" writes:
Hi, this is my first post here and I'm very very new in 'C'
programming.
And I began to 'translate' my PHP program, that beyond a lot of things
generates a md5 hash, and I must generate a md5 hash in 'C' , but I
cant found it anywhere.
I've readed the crypt.h man page, I read twice the post in
http://groups.google.com.br/group/co...4b37481e4d0b48

But I still dont know how to generate a md5 hash from my string
'testing' for example.

Plz, if anyone can help me I'd be glad


Did you look at this?

http://www.faqs.org/rfcs/rfc1321.html
Nov 15 '05 #3
Yes, I've readed the entire RFC, but as I said...I'm very new in 'C'
and I copied the files that is in Appendix.

At this point, everything's fine...but when I try to compile
it...like...I donno how to compile those files togheter.

I tried 'gcc mddriver.c -o mddriver' , and a lot of errors appears to
me :/

I'm posting here cause I tried everything that I can with no results.

Thanks

Nov 15 '05 #4
dutche wrote:
Yes, I've readed the entire RFC, but as I said...I'm very new in 'C'
and I copied the files that is in Appendix.

At this point, everything's fine...but when I try to compile
it...like...I donno how to compile those files togheter.

I tried 'gcc mddriver.c -o mddriver' , and a lot of errors appears to
me :/

I'm posting here cause I tried everything that I can with no results.

Thanks


Please, learn how to ask an intelligent, useful question. Then someone
may help you without wasting posts asking for this and that.

With that said, here is the minimal amount of information needed to
help you:

1) Are you using separate source files? Do you have the MD5
implementation in a separate file or did you copy/paste it into
mddriver.c?
2) What are the errors you get from gcc (please copy/paste, don't
summarize)?
3) What are the relevant source files involved in your project?

At this point, I'd suggest, for simplicity's sake, to simply copy/paste
the MD5 code to the TOP of your mddriver.c source file and place your
int main() function at the bottom of the source file.

Nov 15 '05 #5
dutche wrote:
Yes, I've readed the entire RFC, but as I said...I'm very new in 'C'
and I copied the files that is in Appendix.

Please quote a relevant portion of the previous message for context.
Check CB Falconer messages for instructions.
At this point, everything's fine...but when I try to compile
it...like...I donno how to compile those files togheter.

I tried 'gcc mddriver.c -o mddriver' , and a lot of errors appears to
me :/

I'm posting here cause I tried everything that I can with no results.

And what are we supposed to do, psychically divine what code you are
trying?


Brian
Nov 15 '05 #6
First, I created these files:

global.h
md5.h
md5c.c
mddriver.c

Ok, I made it exactly as described but when I try to compile I dont got
any results, I think that I'm doing something wrong when compiling.

I've copied the source of the programs directly from the RFC site, and
the command that I used is: 'gcc mddriver.c -o mddriver'

And the errors I got was...

mddriver.c: In function `MDString':
mddriver.c:106: error: `MD_CTX' undeclared (first use in this function)
mddriver.c:106: error: (Each undeclared identifier is reported only
once
mddriver.c:106: error: for each function it appears in.)
mddriver.c:106: error: parse error before "context"
mddriver.c:110: error: `context' undeclared (first use in this
function)
mddriver.c:114: error: `MD5' undeclared (first use in this function)
mddriver.c: In function `MDTimeTrial':
mddriver.c:124: error: `MD_CTX' undeclared (first use in this function)
mddriver.c:124: error: parse error before "context"
mddriver.c:130: error: `MD5' undeclared (first use in this function)
mddriver.c:141: error: `context' undeclared (first use in this
function)
mddriver.c: In function `MDTestSuite':
mddriver.c:162: error: `MD5' undeclared (first use in this function)
mddriver.c: In function `MDFile':
mddriver.c:183: error: `MD_CTX' undeclared (first use in this function)
mddriver.c:183: error: parse error before "context"
mddriver.c:191: error: `context' undeclared (first use in this
function)
mddriver.c:198: error: `MD5' undeclared (first use in this function)
mddriver.c: In function `MDFilter':
mddriver.c:208: error: `MD_CTX' undeclared (first use in this function)
mddriver.c:208: error: parse error before "context"
mddriver.c:212: error: `context' undeclared (first use in this
function)

I'm using a Slackware Linux 10.1 with gcc-3.3.4-i486-1.

Sorry for the few arguments in the last post.

Nov 15 '05 #7


dutche wrote:
First, I created these files:

global.h
md5.h
md5c.c
mddriver.c

Ok, I made it exactly as described but when I try to compile I dont got
any results, I think that I'm doing something wrong when compiling.

I've copied the source of the programs directly from the RFC site, and
the command that I used is: 'gcc mddriver.c -o mddriver'

And the errors I got was...

mddriver.c: In function `MDString':
mddriver.c:106: error: `MD_CTX' undeclared (first use in this function)
mddriver.c:106: error: (Each undeclared identifier is reported only
once
mddriver.c:106: error: for each function it appears in.)
mddriver.c:106: error: parse error before "context"
mddriver.c:110: error: `context' undeclared (first use in this
function)
mddriver.c:114: error: `MD5' undeclared (first use in this function)
mddriver.c: In function `MDTimeTrial':
mddriver.c:124: error: `MD_CTX' undeclared (first use in this function)
mddriver.c:124: error: parse error before "context"
mddriver.c:130: error: `MD5' undeclared (first use in this function)
mddriver.c:141: error: `context' undeclared (first use in this
function)
mddriver.c: In function `MDTestSuite':
mddriver.c:162: error: `MD5' undeclared (first use in this function)
mddriver.c: In function `MDFile':
mddriver.c:183: error: `MD_CTX' undeclared (first use in this function)
mddriver.c:183: error: parse error before "context"
mddriver.c:191: error: `context' undeclared (first use in this
function)
mddriver.c:198: error: `MD5' undeclared (first use in this function)
mddriver.c: In function `MDFilter':
mddriver.c:208: error: `MD_CTX' undeclared (first use in this function)
mddriver.c:208: error: parse error before "context"
mddriver.c:212: error: `context' undeclared (first use in this
function)

I'm using a Slackware Linux 10.1 with gcc-3.3.4-i486-1.

Sorry for the few arguments in the last post.


This newsgroup isn't really for helping you learn to compile C code.
Nonetheless, notice you have multiple source files, but only used one
of them in your compile statement. Try something more like:

gcc -c -v -Wall -I. -omd5.o md5.c
gcc -c -v -Wall -I. -omddriver.o mddriver.c
gcc -omddriver mddriver.o md5.o

Nov 15 '05 #8

"dutche" <du****@gmail.com> wrote in message
news:11*********************@g49g2000cwa.googlegro ups.com...
Yes, I've readed the entire RFC, but as I said...I'm very new in 'C'
and I copied the files that is in Appendix.

At this point, everything's fine...but when I try to compile
it...like...I donno how to compile those files togheter.

I tried 'gcc mddriver.c -o mddriver' , and a lot of errors appears to
me :/

I'm posting here cause I tried everything that I can with no results.


That's because the code provided with the RFC has a bug :-)
At approximately line 20 or mddriver.c replace the following line:

#define MD MD5
with
#define MD 5

That's should do the trick.

Regards,
Mark
Nov 15 '05 #9
In the first compile I got errors:
The command:
gcc -c -v -Wall -I. -omd5.o md5c.c

The errors:

GGC heuristics: --param ggc-min-expand=46 --param
ggc-min-heapsize=31005
ignoring nonexistent directory "/usr/i486-slackware-linux/include"
#include "..." search starts here:
#include <...> search starts here:
Nov 15 '05 #10

"Mark" <so***@localbar.com> wrote in message
news:Vh*******************@newshog.newsread.com...

"dutche" <du****@gmail.com> wrote in message
news:11*********************@g49g2000cwa.googlegro ups.com...
Yes, I've readed the entire RFC, but as I said...I'm very new in 'C'
and I copied the files that is in Appendix.

At this point, everything's fine...but when I try to compile
it...like...I donno how to compile those files togheter.

I tried 'gcc mddriver.c -o mddriver' , and a lot of errors appears to
me :/

I'm posting here cause I tried everything that I can with no results.


That's because the code provided with the RFC has a bug :-)
At approximately line 20 or mddriver.c replace the following line:

#define MD MD5
with
#define MD 5

That's should do the trick.

Regards,
Mark


Worth mentioning: You'll also need to compile md5.c
$ gcc md5.c mddriver.c -o [whatever]

Mark
Nov 15 '05 #11
"dutche" <du****@gmail.com> wrote in message
news:11**********************@g43g2000cwa.googlegr oups.com...
First, I created these files:

global.h
md5.h
md5c.c
mddriver.c

Ok, I made it exactly as described but when I try to compile I dont got
any results, I think that I'm doing something wrong when compiling.

I've copied the source of the programs directly from the RFC site, and
the command that I used is: 'gcc mddriver.c -o mddriver' gcc md5.c mddriver.c -o mddriver

And the errors I got was...

caused by an bug in the code.
line 20 mddriver.c
#define MD MD5
should be
#define MD 5
Nov 15 '05 #12
dutche wrote:
First, I created these files:

global.h
md5.h
md5c.c
mddriver.c

Ok, I made it exactly as described but when I try to compile I dont got
any results, I think that I'm doing something wrong when compiling.

I've copied the source of the programs directly from the RFC site, and
the command that I used is: 'gcc mddriver.c -o mddriver'

And the errors I got was...

mddriver.c: In function `MDString':
mddriver.c:106: error: `MD_CTX' undeclared (first use in this function)
mddriver.c:106: error: (Each undeclared identifier is reported only
once
mddriver.c:106: error: for each function it appears in.)
mddriver.c:106: error: parse error before "context"
mddriver.c:110: error: `context' undeclared (first use in this
function)


There are some errors in that source code at
http://www.faqs.org/rfcs/rfc1321.html :

md5c.c line 82 (the blank line) should be deleted
mddriver.c line 21 should read:
#define MD 5
instead of
#define MD MD5

Note that md5c.c contains the functions for performing an MD5
operation (suitable for embedding in another project), and
mddriver.c is a commandline program that you can use to
call these functions.
If all you want to do is add these functions to another project
of yours, then you only need md5c.c .

Note that you have to tell GCC about all the source files you
want to compile:

gcc -o mddriver mddriver.c md5c.c

It's also a good idea to enable warnings:

gcc -o mddriver mddriver.c md5c.c -Wextra -Wall -ansi -pedantic

mddriver.c has a couple of warnings when compiled with these
switches, but they are ones you can safely ignore.

Finally, the source code in that RFC is a little archaic,
if you do a 'locate md5.c' on your system you will probably turn
up a lot of other implementations of it. For example, the PHP
source code contains it.

Nov 15 '05 #13
Is that point that I need to reach, I found that md5.c is the functions
to generate a hash right?
But (as I said I'm new in 'C') I cant realize which function is the
"hash maker".

Sorry, I'm still reading the K&R book but not too familiarized yet.

Nov 15 '05 #14
Red
In article <11*********************@g47g2000cwa.googlegroups. com>,
ja**********@gmail.com says...

Please, learn how to ask an intelligent, useful question.


Please, learn how NOT to be a rude asswipe.
Nov 15 '05 #15
Red wrote:
In article <11*********************@g47g2000cwa.googlegroups. com>,
ja**********@gmail.com says...
Please, learn how to ask an intelligent, useful question.

Please, learn how NOT to be a rude asswipe.


While it is occasionally enjoyable to see a self-referential post, yours
is not at all amusing.
Nov 15 '05 #16
Martin Ambuhl wrote:
Red wrote:
ja**********@gmail.com says...
Please, learn how to ask an intelligent, useful question.


Please, learn how NOT to be a rude asswipe.


While it is occasionally enjoyable to see a self-referential post,
yours is not at all amusing.


No, but it does an admirable job of inciting PLONKs up and down the
seacoast.

--
Chuck F (cb********@yahoo.com) (cb********@worldnet.att.net)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net> USE worldnet address!
Nov 15 '05 #17

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

34
14425
by: pembed2003 | last post by:
Hi All, Does C++/STL have hashtable where I can do stuff like: Hashtable h<int>; h.store("one",1); h.store("two",2); and then later retrieve them like:
10
18548
by: Mamuninfo | last post by:
Hello, Have any function in the DB2 database that can generate unique id for each string like oracle, mysql,sybase,sqlserver database. In mysql:- select md5(concat_ws("Row name")) from...
6
4447
by: Chang | last post by:
How to get SHA1 or MD5 of a big file (+5MB - 20GB) as I can't read 20GB into memory. -- Chang.
8
13364
by: mortb | last post by:
Hi, How do I write a GenerateHashcode function that will generate guaranteed unique hashcodes for my classes? cheers, mortb
3
2374
by: RossettoeCioccolato | last post by:
Is there a brief tutorial somewhere on how to use the VC8 linker to generate a manifest for an isolated application with a dependency section for an arbitrary dll? There are some implementation...
21
3171
by: Johan Tibell | last post by:
I would be grateful if someone had a minute or two to review my hash table implementation. It's not yet commented but hopefully it's short and idiomatic enough to be readable. Some of the code...
139
14035
by: ravi | last post by:
Hi can anybody tell me that which ds will be best suited to implement a hash table in C/C++ thanx. in advanced
4
2517
by: jimhce | last post by:
Hi, I want to generate a hash key from a string, and I want to the hash key is the same value for the same string. But it turns out all the hash functions I have tried, generate different keys...
4
2442
by: ChipAuger | last post by:
Hello Group, Thank you in advance to the group for all responses and help. I'm looking for a 1-way hash for storing passwords on an older embedded system that would be computationally stressed...
15
37556
by: Ashish Khandelwal | last post by:
As MSDN is not giving us guarantee upon uniqueness of Hash Code, so could any one suggest me that how to generate a unique Hash Code for same string always, and generate different-2 Hash Code...
0
7225
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
7124
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
7326
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
1
7046
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
5629
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
1
5053
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
4707
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
3195
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
1
766
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.