Monday, April 16, 2012

HashLib


Here's my new Hash Lib, built again in Ansi C OOP. The lib is compatible with windows, linux, and mac too!
Every hash algorithm has a little cosmetic change, just to uniform all hash algorithm implementations. It doesn't have all hash algoritms, but i think that it has all the most important ones.


Download Source

Example:

// by juza - iamjuza [at] gmail [dot] com
#include "Hash.h"
#include "libdefs.h"
#include <stdio.h>
int main(void)
{
PHASH lpHash = {0};
if (newHash(&lpHash))
{
printf("------------\n");
printf("CRC-16 : %s\n", lpHash->crc16((PCUBYTE)"Juza", strlen("Juza")));
printf("crc16ccitt : %s\n", lpHash->crc16ccitt((PCUBYTE)"Juza", strlen("Juza")));
printf("CRC-32 : %s\n", lpHash->crc32((PCUBYTE)"Juza", strlen("Juza")));
printf("CRC-64 : %s\n", lpHash->crc64((PCUBYTE)"Juza", strlen("Juza")));
printf("Adler-32 : %s\n", lpHash->adler32((PCUBYTE)"Juza", strlen("Juza")));
printf("------------\n");
printf("GOST : %s\n", lpHash->gost((PCUBYTE)"Juza", strlen("Juza")));
printf("------------\n");
printf("MD2 : %s\n", lpHash->md2((PCUBYTE)"Juza", strlen("Juza")));
printf("MD4 : %s\n", lpHash->md4((PCUBYTE)"Juza", strlen("Juza")));
printf("MD5 : %s\n", lpHash->md5((PCUBYTE)"Juza", strlen("Juza")));
printf("------------\n");
printf("haval128p3 : %s\n", lpHash->haval128p3((PCUBYTE)"Juza", strlen("Juza")));
printf("haval128p4 : %s\n", lpHash->haval128p4((PCUBYTE)"Juza", strlen("Juza")));
printf("haval128p5 : %s\n", lpHash->haval128p5((PCUBYTE)"Juza", strlen("Juza")));
printf("haval160p3 : %s\n", lpHash->haval160p3((PCUBYTE)"Juza", strlen("Juza")));
printf("haval160p3 : %s\n", lpHash->haval160p4((PCUBYTE)"Juza", strlen("Juza")));
printf("haval160p5 : %s\n", lpHash->haval160p5((PCUBYTE)"Juza", strlen("Juza")));
printf("haval192p3 : %s\n", lpHash->haval192p3((PCUBYTE)"Juza", strlen("Juza")));
printf("haval192p4 : %s\n", lpHash->haval192p4((PCUBYTE)"Juza", strlen("Juza")));
printf("haval192p5 : %s\n", lpHash->haval192p5((PCUBYTE)"Juza", strlen("Juza")));
printf("haval224p3 : %s\n", lpHash->haval224p3((PCUBYTE)"Juza", strlen("Juza")));
printf("haval224p4 : %s\n", lpHash->haval224p4((PCUBYTE)"Juza", strlen("Juza")));
printf("haval224p5 : %s\n", lpHash->haval224p5((PCUBYTE)"Juza", strlen("Juza")));
printf("haval256p3 : %s\n", lpHash->haval256p3((PCUBYTE)"Juza", strlen("Juza")));
printf("haval256p4 : %s\n", lpHash->haval256p4((PCUBYTE)"Juza", strlen("Juza")));
printf("haval256p5 : %s\n", lpHash->haval256p5((PCUBYTE)"Juza", strlen("Juza")));
printf("------------\n");
printf("SHA128 : %s\n", lpHash->sha128((PCUBYTE)"Juza", strlen("Juza")));
printf("SHA224 : %s\n", lpHash->sha224((PCUBYTE)"Juza", strlen("Juza")));
printf("SHA256 : %s\n", lpHash->sha256((PCUBYTE)"Juza", strlen("Juza")));
printf("SHA384 : %s\n", lpHash->sha384((PCUBYTE)"Juza", strlen("Juza")));
printf("SHA512 : %s\n", lpHash->sha512((PCUBYTE)"Juza", strlen("Juza")));
printf("------------\n");
printf("RIPEMD-128 : %s\n", lpHash->ripemd128((PCUBYTE)"Juza", strlen("Juza")));
printf("RIPEMD-160 : %s\n", lpHash->ripemd160((PCUBYTE)"Juza", strlen("Juza")));
printf("------------\n");
printf("Tiger : %s\n", lpHash->tiger((PCUBYTE)"Juza", strlen("Juza")));
printf("------------\n");
printf("Whirlpool : %s\n", lpHash->whirlpool((PCUBYTE)"Juza", strlen("Juza")));
printf("------------\n");
closeHash(lpHash);
}
return 0;
}
view raw gistfile1.c hosted with ❤ by GitHub

No comments: