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

📄 sha1demo.cpp

📁 只包括两个核心文件sha1.cpp及sha1.h 计算数据的sha1摘要。简单
💻 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 + -