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

📄 sha256_example.c

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

/*	Test Vectors	
    String: "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq",
    Digest: "248d6a61d20638b8e5c026930c3e6039a33ce45964ff2167f6ecedd419db06c1",
*/
#define NUM 300000
#define MESSAGELEN 1300

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

	start = clock();
	for(i=0; i< NUM; i++){
		ds_sha256Init(&ctx);
		ds_sha256Update(&ctx, msg, MESSAGELEN);
		ds_sha256Final(&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", (NUM/1000)*(MESSAGELEN*8)/(double)(finish - start) );
	
	m = "abcdbcdecdefdefgefghfghighijhijkijkljklmklmnlmnomnopnopq";
	ds_sha256Init(&ctx);
	ds_sha256Update(&ctx, m, strlen(m));
	ds_sha256Final(&ctx,digest);

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

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

⌨️ 快捷键说明

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