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

📄 sha1test.c

📁 加解密包
💻 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 + -