⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sha1_example.c

📁 Dr.Sec高速密码算法库Windows版
💻 C
字号:
#include <windows.h>
#include <stdio.h>
#include <time.h>
#include "sha1.h"

/*	Test Vectors	
    String: "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
    Digest: "84983e441c3bd26ebaae4aa1f95129e5e54670f1",
*/
#define NUM 1000000
#define MESSAGELEN 1300

void sha1_example()
{
	clock_t start,finish;
	int i;
	unsigned char msg[MESSAGELEN];
	unsigned char digest[20];
	struct sha1Context ctx;
	char str[512], *m;

	start = clock();
	for(i=0; i< NUM; i++){
		ds_sha1Init(&ctx);
		ds_sha1Update(&ctx, msg, MESSAGELEN);
		ds_sha1Final(&ctx,digest);
	}
	finish = clock();
	str[0] = 0;
	sprintf(str+strlen(str), "%.4f seconds spent in hashing\r\n", (double)(finish - start) / CLOCKS_PER_SEC );
	sprintf(str+strlen(str), "Speed: %.2fMbps\r\n\r\n", (MESSAGELEN*8000)/(double)(finish - start) );
	
	m = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
	ds_sha1Init(&ctx);
	ds_sha1Update(&ctx, m, strlen(m));
	ds_sha1Final(&ctx,digest);

	sprintf(str+strlen(str),"String:    %s\r\n",m);
	sprintf(str+strlen(str),"Digest:    ");
	for(i=0;i<20;i++)
		sprintf(str+strlen(str),"%02x",digest[i]);
	sprintf(str+strlen(str),"\r\nSHOULD BE: 84983e441c3bd26ebaae4aa1f95129e5e54670f1\r\n");

	MessageBox(NULL,str,"SHA1 test",MB_OK);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -