QuickHash Library

A fast, highly optimized implementation of the most popular hash, checksum and HMAC algorithms.

A highly optimized implementation of the most popular hash, checksum and HMAC algorithms.

The library allows Windows developers to perform hash, checksum and HMAC calculations for memory blocks, strings, blobs, streaming data and files in their applications.

QuickHash Library was designed to be fast, flexible and extremely easy to use.

Major Features:

  • Support of

    • 13 hash algorithms: MD2, MD4, MD5, SHA-1, SHA-2 (SHA-256, SHA-384, SHA-512), RIPEMD-128, RIPEMD-160, RIPEMD-256, RIPEMD-320, PANAMA, TIGER.

    • 4 checksum algorithms: CRC16, CRC16C (CRC-CCITT), CRC32, ADLER32.

    • 12 HMAC algorithms: HMAC-MD4, HMAC-MD5, HMAC-SHA1, HMAC-SHA256, HMAC-SHA384, HMAC-SHA512, HMAC-RIPEMD128, HMAC-RIPEMD160, HMAC-RIPEMD256, HMAC-RIPEMD320, HMAC-PANAMA, HMAC-TIGER.

  • Support of 3 interfaces:

    • QuickHash API (The QuickHash API can be used as is, or it can be used to create wrappers for other languages that can use DLLs).

    • C++ Interface (C++ wrapper classes to QuickHash API).

    • QuickHash Type Library (Includes all declarations for accessing the QuickHash Library from different programming languages which have the possibility to reference a Type Library, such as VB 5.0, VB 6.0, VBA, etc.)

  • Support for

    • Static Linking

    • Dynamic Linking

  • No external dependencies such as MFC DLLs, COM/DCOM or other resources.

  • Excellent documentation (MFC-style help).

Details:

Samples:

Some samples are listed in the table below.  More samples can be found in QuickHash Library's help file (QuickHash.chm).

Sample (C++ Interface)


The following sample demonstrates how to use the CMD5 class to calculate the MD5 message digest for a file.

#include <fstream>
#include <iostream>
#include <QuickHash.h>

using namespace std;
using namespace QuickHash;

bool CalculateFileDigest( const char* filename, char* digesthex )
{
    fstream file( filename, ios::in | ios::binary );
   
    if( !file )
    {
        cout << "\nCould not open file: " << filename;
        return false;
    }
   
    const unsigned int BUFF_SIZE = 1024;
    unsigned char buff[ BUFF_SIZE ];
   
    //Instantiate a CMD5 object
   
    CMD5 hash;
   
    //Calculate the digest by calling Update for each block of the file
   
    while( !file.eof() )
    {
        file.read( ( char* )buff, BUFF_SIZE );
        hash.Update( buff, file.gcount() );
    }
   
    //Do final changes and get the digest in hex format
   
    hash.FinalHex( digesthex ); // FinalHex reinitializes the hash object for the next use
   
    file.close();
   
    return true;
}

int main()
{
    char buff[ 10 ];
   
    char digesthex[ CMD5::HEXDIGESTSIZE ]; //0 terminated
   
    do
    {
        //Get the file name from the user
       
cout << "\nEnter a file name:\n";
       
        char filename[ 256 ];
        cin.getline( filename, 256 );
       
        //Calculate the digest
       
        if( CalculateFileDigest( filename, digesthex ) )
            cout << "\nDigest: " << digesthex;
       
        //Continue?
       
        cout << "\nContinue (Y/N)?";
        cin.getline( buff, 10 );
       
    } while ( *buff == 'y' || *buff == 'Y' );
   
    return 0;
}

System Requirements

Platform:

Windows XP / 2000 / 2003 or later. Or NT4 Server,  Windows 9x, Me, NT.

 Order 

Developer Web Site

Additional Information: QuickHash Library
$149.00 Buy Online bbuy.gif (1156 bytes)
 

Business Software Catalog

Business

Excel Spreadsheets

Accounting Accounting
Amortization Add Power to Excel
Archotecture & Construction Amortization
AutoCAD Analysis
Banking Architeckture & Construction
Banking with Excel Asset Register
Barcodes Auditing
Books Banking
Budgeting Budgeting
Business Calendars
Business Databases Car Accounting
Business Plans Charting
Business Resource Management Checks
Business Software with Source Code Conversion
Business Systems Download Managers

Next

Business Support Software

MS Excel Add-ins, Spreadsheets, Templates