📄 sha1demo.cpp
字号:
// SHA1Demo.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include "sha1.h"
/*
* Define patterns for testing
*/
#define TEST1 "abc"
#define TEST2a "abcdbcdecdefdefgefghfghighijhi"
#define TEST2b "jkijkljklmklmnlmnomnopnopq"
#define TEST2 TEST2a TEST2b
#define TEST3 "a"
#define TEST4a "01234567012345670123456701234567"
#define TEST4b "01234567012345670123456701234567"
/* an exact multiple of 512 bits */
#define TEST4 TEST4a TEST4b
char *testarray[] =
{
TEST1,
TEST1,
TEST2,
TEST3,
TEST4
};
long int repeatcount[] = { 1, 1, 1, 1000000, 10 };
char *resultarray[] =
{
"A9 99 3E 36 47 06 81 6A BA 3E 25 71 78 50 C2 6C 9C D0 D8 9D",
"A9 99 3E 36 47 06 81 6A BA 3E 25 71 78 50 C2 6C 9C D0 D8 9D",
"84 98 3E 44 1C 3B D2 6E BA AE 4A A1 F9 51 29 E5 E5 46 70 F1",
"34 AA 97 3C D4 C4 DA A4 F6 1E EB 2B DB AD 27 31 65 34 01 6F",
"DE A3 56 A2 CD DD 90 C7 A7 EC ED C5 EB B5 63 93 4F 46 04 52"
};
#define SHA1_2
#ifdef SHA1_2
#define SHA1Context SHA1_CTX
#define SHA1Reset SHA1Init
#define SHA1Input SHA1Update
#define SHA1Result(a, b) SHA1Final(b, a)
#endif /* SHA1_2 */
int _tmain(int argc, _TCHAR* argv[])
{
SHA1Context sha;
int i, j, err;
unsigned char Message_Digest[20];
/*
* Perform SHA-1 tests
*/
for(j = 0; j < 5; ++j)
{
printf( "\nTest %d: %d, '%s'\n",
j+1,
repeatcount[j],
testarray[j]);
SHA1Reset(&sha);
for(i = 0; i < repeatcount[j]; ++i)
{
SHA1Input(&sha, (const unsigned char *) testarray[j], strlen(testarray[j]));
}
SHA1Result(&sha, Message_Digest);
printf("\t");
for(i = 0; i < 20 ; ++i)
{
printf("%02X ", Message_Digest[i]);
}
printf("\n");
printf("Should match:\n");
printf("\t%s\n", resultarray[j]);
}
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -