资源简介
此程序采用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++;
相关资源
- DES加密解密算法C++程序设计
- 3DES c源码实现
- 一个完整的des算法的c语言实现
- DES算法CBC运行模式实现
- DES密码算法 S盒P盒
- 3DES,C语言版,ECB,PKCS7
- c/c++实现的基于文件的DES加解密
- DES算法C++实现
- DES加密码算法MFC类实现
- des差分攻击哦
- 常用加密算法AES、RSA、DES、MD5、TEA、
- DES算法加解密实现 C语言
- 音频感知哈希函数的提取matlab codes
- DES加密算法C++实现
- DES五种加密模式(MFC实现) 源码
- vc++6.0DES加密算法+数据加密+文件加密
- C++ DES图像加密与解密
- C语言 3DES、AES、RC6、TEA、RSA、MD5、S
- AES、DES加密算法C语言源码
- C++语言版本的DES加解密应用程序源码
- 使用C语言来扩展PHP,写PHP扩展dll
- CBC模式的DES加密解密程序
- 《新概念51单片机C语言教程--入门提高
- C语言实现的DES加密算法
- DES算法_C语言实现啊
- 新概念51单片机C语言教程入门、提高
- C语言版本的DES加密解密算法代码!(
- 桌面计算器
- Large Scale C++ Software Design
- DES源代码C语言实现
评论
共有 条评论