Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

MD5 Hash Calculator Pocket PC 2003/Windows CE 4.x

0.00/5 (No votes)
17 May 2005 1  
A small tool for calculating a MD5 hash.

Introduction

Background: I experienced some problems with my SD memory card in my HP IPAQ 1940. My GPS program had a lot of bugs I thought. Because it couldn't handle large maps. After some testing, I figured out that 64 MB was the magic limit. The tool I used to test was MD5 Hashing.

My simple method:

  • Create a large file (100 MB) on the SD card.
  • Calculate MD5 on the PC (SD card in card reader).
  • Insert SD card into IPAQ.
  • Calculate MD5 on the IPAQ.
  • Check if same. If not decrease size by half, if the hash is the same increase the file by 50%.

This gave the result that it was something goofy around 64 MB files.

After that I checked the obvious (thanks Rob). If there are any updates on the HP website for my IPAQ. And there was. So if you are having any problems with large (>64 MB) files on your IPAQ 1940 (or other models), check for updates at the HP website. The update for 1940 can be downloaded here.

Anyway, problem found and solved. I thought you might find it useful to have a MD5 Hasher for Pocket PC, so here it is. Parts of the code is (c) RSA Data Security, Inc.

Code snippet:

  MD5_CTX m_md5;
  CString tempHash = "";

    if (md5file(m_strFile.GetBuffer(MAX_PATH), 0, &m_md5))
    {
        for (int i = 0; i < 16; i++)
        {
            char tmp[3];
            _itoa(m_md5.digest[i], tmp, 16);
            if (strlen(tmp) == 1)
            {
                tmp[1] = tmp[0];
                tmp[0] = '0';
                tmp[2] = '\0';
            }
            tempHash += tmp;
        }
    }

The result is delivered in human readable format in tempHash.

Drop me an e-mail with comments or questions. To see what I should do instead of debugging SD-cards, have a look at www.freefloat.com.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here