How to generate a md5 hash?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • dutche

    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


    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

  • Eric Sosman

    #2
    Re: How to generate a md5 hash?



    dutche wrote:[color=blue]
    > 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.[/color]

    The RFC that defines MD5 contains a sample C
    implementation.

    --
    Eric.Sosman@sun .com

    Comment

    • osmium

      #3
      Re: How to generate a md5 hash?

      "dutche" writes:
      [color=blue]
      > 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[/color]

      Did you look at this?




      Comment

      • dutche

        #4
        Re: How to generate a md5 hash?

        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

        Comment

        • james.jdunne@gmail.com

          #5
          Re: How to generate a md5 hash?

          dutche wrote:[color=blue]
          > 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[/color]

          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.

          Comment

          • Default User

            #6
            Re: How to generate a md5 hash?

            dutche wrote:
            [color=blue]
            > 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.[/color]


            Please quote a relevant portion of the previous message for context.
            Check CB Falconer messages for instructions.
            [color=blue]
            > 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.[/color]


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




            Brian

            Comment

            • dutche

              #7
              Re: How to generate a md5 hash?

              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.

              Comment

              • Chris Hulbert

                #8
                Re: How to generate a md5 hash?



                dutche wrote:[color=blue]
                > 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.[/color]

                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

                Comment

                • Mark

                  #9
                  Re: How to generate a md5 hash?


                  "dutche" <dutche@gmail.c om> wrote in message
                  news:1121885401 .174444.73760@g 49g2000cwa.goog legroups.com...[color=blue]
                  > 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.[/color]

                  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


                  Comment

                  • dutche

                    #10
                    Re: How to generate a md5 hash?

                    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:

                    Comment

                    • Mark

                      #11
                      Re: How to generate a md5 hash?


                      "Mark" <sober@localbar .com> wrote in message
                      news:VhyDe.2629 $Q75.505526@new shog.newsread.c om...[color=blue]
                      >
                      > "dutche" <dutche@gmail.c om> wrote in message
                      > news:1121885401 .174444.73760@g 49g2000cwa.goog legroups.com...[color=green]
                      >> 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.[/color]
                      >
                      > 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[/color]

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

                      Mark


                      Comment

                      • Mark

                        #12
                        Re: How to generate a md5 hash?

                        "dutche" <dutche@gmail.c om> wrote in message
                        news:1121888895 .284152.273720@ g43g2000cwa.goo glegroups.com.. .[color=blue]
                        > 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'[/color]
                        gcc md5.c mddriver.c -o mddriver

                        [color=blue]
                        > And the errors I got was...[/color]
                        caused by an bug in the code.
                        line 20 mddriver.c
                        #define MD MD5
                        should be
                        #define MD 5


                        Comment

                        • Old Wolf

                          #13
                          Re: How to generate a md5 hash?

                          dutche wrote:[color=blue]
                          > 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)[/color]

                          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.

                          Comment

                          • dutche

                            #14
                            Re: How to generate a md5 hash?

                            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.

                            Comment

                            • Red

                              #15
                              Re: How to generate a md5 hash?

                              In article <1121887089.792 655.60480@g47g2 000cwa.googlegr oups.com>,
                              james.jdunne@gm ail.com says...[color=blue]
                              >
                              > Please, learn how to ask an intelligent, useful question.[/color]

                              Please, learn how NOT to be a rude asswipe.

                              Comment

                              Working...