📄 des_example.c
字号:
#include <windows.h>
#include <stdio.h>
#include <time.h>
#include "des.h"
/* Test Vectors
key plain cipher
0101010101010101 0000000000000000 8CA64DE9C1B123A7
0123456789ABCDEF 0000000000000000 D5D44FF720683D0D
0123456789ABCDEF 0123456789ABCDEF 56CC09E7CFDC4CEF
*/
#define NUM 25
#define BLOCKNUM (NUM*1000*1000)
static unsigned char key[16] = {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef};
static unsigned long RK[256];
static unsigned char plain[8] = {0x01,0x23,0x45,0x67,0x89,0xab,0xcd,0xef};
static unsigned char cipher[8];
char str[1024];
void nullfunc (unsigned long *rk,unsigned char *plain, unsigned char *cipher);
void des_example()
{
clock_t start,end,t1,t2;
float mid;
int i;
ds_desKeySetup(RK,key,8,NULL);
start = clock();
for(i = 0; i<BLOCKNUM; i++){
ds_desEncryptBlock(RK,plain,cipher);
}
end = clock();
t1 = end - start;
start = clock();
for(i = 0; i<BLOCKNUM; i++){
nullfunc(RK,plain,cipher);
}
end = clock();
t2 = end - start;
str[0] = 0;
sprintf(str+strlen(str),"Encrypt speed of DES\r\n");
sprintf(str+strlen(str),"%dM 128-bit blocks encrypted in %d microseconds\r\n",NUM,t1-t2);
mid = (float)(t1 - t2);
sprintf(str+strlen(str),"Speed is %.2f\r\n",(NUM*64000)/mid);
sprintf(str+strlen(str),"\r\nPlain text: ");
for(i=0;i<8;i++)
sprintf(str+strlen(str),"%02X",plain[i]);
sprintf(str+strlen(str),"\r\nCipher text: ");
for(i=0;i<8;i++)
sprintf(str+strlen(str),"%02X",cipher[i]);
sprintf(str+strlen(str),"\r\nIt should be: 56CC09E7CFDC4CEF\r\n");
ds_desDecryptBlock(RK,cipher,plain);
sprintf(str+strlen(str),"\r\nAfter Decryption: ");
for(i=0;i<8;i++)
sprintf(str+strlen(str),"%02X",plain[i]);
MessageBox(NULL,str,"DES test",MB_OK);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -