MD5 check sum of a file

  • Hi All,

    I want to find out the md5 check sum of a file while giving the path of
    the file.
    I don't want to use NSTask manager and shell command .Hope some one can
    help me to find a solution in this regard.

    Is there any API which helps me to find the md5 check sum.?


    Regards,
    Anoop T Varughese.



    The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments.

    WARNING: Computer viruses can be transmitted via email. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email.

    www.wipro.com
  • On 13 Feb 2008, at 10:49, <anoop.varughese...> wrote:
    > I want to find out the md5 check sum of a file while giving the path
    > of
    > the file.
    > I don't want to use NSTask manager and shell command .Hope some one
    > can
    > help me to find a solution in this regard.
    >
    > Is there any API which helps me to find the md5 check sum.?

    "man -k md5" might help...

    #include <openssl/md5.h>
    unsigned char digest[MD5_DIGEST_LENGTH]
    NSError *e;
    NSData *d = [NSData dataWithContentsOfFile: filePath options:
    NSMappedRead error: &e];
    if (d == nil)
        { ... barf about e ... }
    else
        MD5([d bytes], [d length], digest);
  • On 13 Feb '08, at 2:49 AM, <anoop.varughese...> <anoop.varughese...>
    > wrote:

    > Hi All,
    >
    > I want to find out the md5 check sum of a file while giving the path
    > of
    > the file.

    #include <CommonCrypto/CommonDigest.h>

    This is Apple's preferred high-level API for generating digests/hashes.

    If you have a choice of algorithms, and if this involves security at
    all, SHA-1 is a better choice. There are known weaknesses in MD5.

    —Jens
  • On Feb 13, 2008, at 17:58, Jens Alfke wrote:

    >> I want to find out the md5 check sum of a file while giving the
    >> path of
    >> the file.
    >
    > #include <CommonCrypto/CommonDigest.h>
    >
    > This is Apple's preferred high-level API for generating digests/
    > hashes.

    And why is that? What are the advantages to developers?

    Best Regards,

    Nir Soffer
  • Well, presumably Apple's preferred API is the one which will see the
    most optimization and bug fixes…?

    Nir Soffer wrote:
    >
    > On Feb 13, 2008, at 17:58, Jens Alfke wrote:
    >
    >>> I want to find out the md5 check sum of a file while giving the path of
    >>> the file.
    >>
    >> #include <CommonCrypto/CommonDigest.h>
    >>
    >> This is Apple's preferred high-level API for generating digests/hashes.
    >
    > And why is that? What are the advantages to developers?
    >
    >
    > Best Regards,
    >
    > Nir Soffer
  • On 13 Feb '08, at 12:57 PM, Nir Soffer wrote:

    > And why is that? What are the advantages to developers?

    It doesn't drag the OpenSSL framework into memory. Fewer frameworks =
    lower footprint. (The CommonCrypto stuff in in libSystem.)

    —Jens
  • On 13 Feb 2008, at 15:58, Jens Alfke wrote:
    > On 13 Feb '08, at 2:49 AM, <anoop.varughese...> <anoop.varughese...>
    >> wrote:
    >> I want to find out the md5 check sum of a file while giving the
    >> path of
    >> the file.
    >
    > #include <CommonCrypto/CommonDigest.h>
    >
    > This is Apple's preferred high-level API for generating digests/
    > hashes.

    Is either the fact that this is preferred, or the header itself,
    documented anywhere?  Typing either "CommonCrypto" or "CommonDigest"
    into the full text search no the latest Xcode yields just one hit in
    some example code and no documentation whatsoever.

    > If you have a choice of algorithms, and if this involves security at
    > all, SHA-1 is a better choice. There are known weaknesses in MD5.

    There are known weaknesses in SHA-1 as well (both have viable
    collision attacks, neither has a viable second pre-image attack).  If
    the hash is being used for security then SHA-256 (in the same header
    file) would be even better.  That said, if all you are doing is
    checking that bits didn't get corrupted in transit then MD5 is
    probably just fine.

    Cheers,
      Nicko
  • Thanks for the response !

    -----Original Message-----
    From: cocoa-dev-bounces+anoop.varughese=<wipro.com...>
    [mailto:cocoa-dev-bounces+anoop.varughese=<wipro.com...>] On
    Behalf Of Nicko van Someren
    Sent: Thursday, February 14, 2008 6:34 PM
    To: Jens Alfke
    Cc: Apple Cocoa-Dev Mailing List
    Subject: Re: MD5 check sum of a file

    On 13 Feb 2008, at 15:58, Jens Alfke wrote:
    > On 13 Feb '08, at 2:49 AM, <anoop.varughese...>
    > <anoop.varughese...>
    >> wrote:
    >> I want to find out the md5 check sum of a file while giving the path
    >> of the file.
    >
    > #include <CommonCrypto/CommonDigest.h>
    >
    > This is Apple's preferred high-level API for generating digests/
    > hashes.

    Is either the fact that this is preferred, or the header itself,
    documented anywhere?  Typing either "CommonCrypto" or "CommonDigest"
    into the full text search no the latest Xcode yields just one hit in
    some example code and no documentation whatsoever.

    > If you have a choice of algorithms, and if this involves security at
    > all, SHA-1 is a better choice. There are known weaknesses in MD5.

    There are known weaknesses in SHA-1 as well (both have viable collision
    attacks, neither has a viable second pre-image attack).  If the hash is
    being used for security then SHA-256 (in the same header
    file) would be even better.  That said, if all you are doing is checking
    that bits didn't get corrupted in transit then MD5 is probably just
    fine.

    Cheers,
      Nicko

    The information contained in this electronic message and any attachments to this message are intended for the exclusive use of the addressee(s) and may contain proprietary, confidential or privileged information. If you are not the intended recipient, you should not disseminate, distribute or copy this e-mail. Please notify the sender immediately and destroy all copies of this message and any attachments.

    WARNING: Computer viruses can be transmitted via email. The recipient should check this email and any attachments for the presence of viruses. The company accepts no liability for any damage caused by any virus transmitted by this email.

    www.wipro.com