📄 sha1test.c
字号:
#include <stdio.h>#include <stdlib.h>#include <string.h>#include "crypto.h"/** DES3KeyGen() Purpose: Generate 3DES key based on a given password Return: 1 : successful 0 : failed 101 : password length > 70**/int DES3KeyGen(char *sPassword, Byte *key) { HSHA1 hSha1; unsigned char md1[20],md2[20]; char buf[200]; char gsalt[20]= {0x41,0x42,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x50, 0x51,0x52,0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x00}; char gpad[20]= {0x11,0x12,0x13,0x11,0x15,0x16,0x17,0x18,0x19,0x11, 0x21,0x22,0x33,0x14,0x55,0x26,0x17,0x38,0x59,0x00}; int nNeedSize; int i; nNeedSize = strlen(sPassword); /* Password Size must less than 70 */ if (nNeedSize > 70) return 101; memset(buf, 0, 200); strcpy(buf, gsalt); strcat(buf, sPassword); strcat(buf, gpad); printf("str:len: [%s][%d]\n",buf,strlen(buf)); hSha1 = Sha1Init(); Sha1Update(hSha1,(unsigned char*)buf,strlen(buf)); Sha1Final(md1,hSha1); CloseSha1(hSha1); printf("\n"); for (i=0;i<20;i++) { printf ("%02x",md1[i]); } printf("\n\n"); memset(buf, 0, 200); strcpy(buf,sPassword); strcat(buf,gpad); strcat(buf,sPassword); printf("str:len: [%s][%d]\n",buf,strlen(buf)); hSha1 = Sha1Init(); Sha1Update(hSha1,(unsigned char*)buf,strlen(buf)); Sha1Final(md2,hSha1); CloseSha1(hSha1); printf("\n"); for (i=0;i<20;i++) { printf ("%02x",md2[i]); } printf("\n\n"); memset(buf, 0, 200); memcpy(buf, md1, 20); strcat(buf, md2); for (i=0;i<24;i++) { key[i]=buf[i+3]; } return 1;}int main(int argc, char* argv[]) { int i; unsigned char key[24]; char buf[80]; if (argc > 1) { strcpy(buf, argv[1]); } else { printf("Enter a string: "); scanf("%s", buf); } DES3KeyGen(buf, key); printf("\n"); for (i=0;i<24;i++) { printf ("%02x",key[i]); } printf("\n"); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -