资源简介
此程序采用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++;
相关资源
- 3des加密算法C语言实现
- DES加密算法C语言实现
- C语言实现的DES对称加密算法
- 基于空调项目的Autosar 架构的设计.d
- C++实现AES、DES加密算法含MFC界面
- 3DES加密算法C++实现
- DES/3DES算法C语言实现
- DES和3DES加密算法,C语言,适用于单片
- 各种加密算法C语言版
- The Design And Evolution Of C++英文版
- DES算法C++实现.rar
- Practical C++ Design From Programming to Archi
- DES文件加密解密系统 密码学课设
- c语言+UDP+DES加密+socket编程
- MFC写的对文件内容的DES加解密
- stm32L系列F系列 加密库Cryptographic lib
- 密码学:分组密码DES算法C语言版
- vc++实现des加密和解密
- 3DES加密算法 C++实现
- Design Patterns in Modern C++-Apress(2018)
- CoDeSys 2.3 中文教程学习PLC编程的最好
- codesys教程
- 基于C++用用CBC与ECB模式的DES加解密
- DES MFC实现在VC6.0中
- VC6下开发的des邮件加密系统
-
C++ 实现 3DES加解密ba
se64加解密 - MFC实现DES加密解密实现
- DES原理及实现步骤,以及VC++关于DES加
- Virtual Machine Design and Implementation in C
- 《大棚温湿度自动控制系统》 包括
川公网安备 51152502000135号
评论
共有 条评论