91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 164KB
    文件類型: .7z
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-11
  • 語言: C/C++
  • 標簽: des??拓展??

資源簡介

此程序采用vc++6.0實現,實現字符串des加密,增加64位-128位的拓展。歡迎下載,禁止交流!

資源截圖

代碼片段和文件信息

/********DES?Encript?by?mzt********************************************/

#include
#include
#include“des_encode.h“
#include?“time.h“
#include?
int?key[16][48];
int?keyExtend[16][48];
char?str[8];

void?main()?????????????????//main?function
{
??int?d;
Cm: printf(“1.【數據加解密】2.【退出】\n“);
scanf(“%d“&d);
getchar();
????if?(d==2)
????{
exit(0);
????}
if(d==1)
{?EncodeMain();????goto?Cm;}
else???printf(“\n【輸入錯誤!請重新選擇】:\n“);goto???Cm;

}


void?EncodeMain()???????????//EncodeMain?function
{
????int?iNum;
????clock_t?ab;
????char?keychar[8]keycharExtend[8];
????int?key2[8]keyExtend[8];
????int?strkey[8];
??

????printf(“\n【請輸入8個要加密的字符】:\n“);
??
Xm:?gets(str);
????Num=strlen(str);

????if?(Num<8)
{
???for?(i=Num;i<8;i++)
???{
???str[i]=‘\0‘;
???}

???}
???if?(Num>8)
???{
???printf(“【字符數過長??!請重新輸入】:\n“);
???goto?Xm;
???}
??
??for(i=0;i<8;i++)
????strkey[i]=str[i];


??
?printf(“\n【請輸入密鑰(8個字符)】:\n“);
Ym:??gets(keychar);
?Num=strlen(keychar);
?
?????if?(Num!=8)
?{
??printf(“【字符數不正確??!請重新輸入】:\n“);
??goto?Ym;
?}
????for(i=0;i<8;i++)
?????key2[i]=keychar[i];
??
?????printf(“\n【請輸入拓展密鑰(8個字符)】:\n“);
Zm:??gets(keycharExtend);
?Num=strlen(keycharExtend);
?
?????if?(Num!=8)
?{
?printf(“【字符數不正確?。≌堉匦螺斎搿?\n“);
?goto?Zm;
?}
??for(i=0;i<8;i++)
??keyExtend[i]=keycharExtend[i];

??a=clock();
??Encode(strkeykey2keyExtend);
??b=clock();
??printf(“\n\n\n【加密時間為】:%dms\n“b-a);
??printf(“\n【加密后十六進制密文是】:\n“);
??for(i=0;i<8;i++)
?????printf(“%4x“strkey[i]);
??

??printf(“\n\n【請輸入解密密碼】:\n“);
Am:??gets(keychar);
?Num=strlen(keychar);
?
?????if?(Num!=8)
?{
?printf(“【密碼長度錯誤??!請重新輸入】:\n“);
?goto?Am;
?}
??for(i=0;i<8;i++)
?????key2[i]=keychar[i];
??
???printf(“【請輸入拓展密碼】:\n“);
Bm:??gets(keycharExtend);
?Num=strlen(keycharExtend);
?
?????if?(Num!=8)
?{
?printf(“【密碼長度錯誤!!請重新輸入】:\n“);
?goto?Bm;
?}
??for(i=0;i<8;i++)?keyExtend[i]=keycharExtend[i];


???a=clock();
???Decode(strkeykey2keyExtend);
???b=clock();

?printf(“\n\n\n【解密的時間為】:%d“b-a);
??
//???for(i=0;i<8;i++)
//?????printf(“%4x“strkey[i]);
??
??
??for(i=0;i<8;i++)
????str[i]=strkey[i];
?
??
??printf(“\n【明文為】:“);
?????for(i=0;i<8;i++) printf(“%c“str[i]);
?printf(“\n“);


}

//ls/rs循環左移
void?keyBuild(int?*keychar){????????????//create?key?array
????int?i;
????int?movebit[]={1122222212222221};
????int?midkey2[56];
????int?midkey[64];
????StrtoBin(midkeykeychar);//應該在此處添加midkey3
????for(i=0;i<56;i++)
??????midkey2[i]=midkey[PC1[i]-1];
????for(i=0;i<16;i++)
??????keyCreate(midkey2movebit[i]i);
}

//keychar和產生的midkey的賦值
void?StrtoBin(int?*midkeyint?*keychar){?????//change?into?binary
????int?trans[8]ijkn;
????n=0;
????for(i=0;i<8;i++)
{
????????j=0;
????????while(keychar[i]!=0){
????????????trans[j]=keychar[i]%2;
????????????keychar[i]=keychar[i]/2;
????????????j++;
??????

評論

共有 條評論