366_『作业』网络安全实验_凯撒密码与DES的C实现_kaisa.pdfVIP

  • 20
  • 0
  • 约1.33万字
  • 约 14页
  • 2020-10-21 发布于广东
  • 举报

366_『作业』网络安全实验_凯撒密码与DES的C实现_kaisa.pdf

Creat on 2015-09-05 2014-05-03 21:55:53 By 独立观察员 『作业』网络安全实验_凯撒密码与DES的C实现 ——独立观察员 2014.04.27 一、凯撒密码的C实现 (一)代码 #includestdio.h #includestring.h #define LEN 50 int main() { char msg[LEN]; int move,i; printf(请输入移位数:\n); scanf(%d,move); getchar(); printf(请输入明文:\n); gets(msg); for(i=0;iLEN;i++) { if((msg[i]=A)(msg[i]=Z)) { msg[i] += move; //移位; if(( (msg[i]=A)(msg[i]=Z) )==0) msg[i] -= 26; } else if((msg[i]=a)(msg[i]=z)) { msg[i] += move; if(( (msg[i]=a)(msg[i]=z) )==0) msg[i] -= 26; } /*else { printf(您的输入中包含非字母的内容,不符合凯撒密码的规定,程序将终止。\n); return -1; }*/ } printf(已加密得到密文:\n); Creat on 2015-09-05 puts(msg); printf(\n); printf(请输入密文:\n); gets(msg); for(i=0;iLEN;i++) { if(msg[i]=Amsg[i]=Z) { msg[i] -= move; //移位; if((msg[i]=Amsg[i]=Z)==0) msg[i] += 26; } else if(msg[i]=amsg[i]=z) { msg[i] -= move; if((msg[i]=amsg[i]=z)==0) msg[i] += 26; } } printf(已解密得到明文:\n); puts(msg); return 0; } (二)运行截图及说明 Creat on 2015-09-05 说明: 移位数应是26以内的正整数; 明文和密文只支持大小写字母; 解密时使用与加密时相同的移位数; 大写字母加密或解密后还是大写字母,小写字母加密或解密后也还是小写字母。 二、DES的C语言实现 说明:只要求找到可运行的代码并读懂。 (一)代码 (来源于网络) (1)main.c /* Data Encryption Standard 56位密钥加密64位数据 2011.10 */ #include stdlib.h #include stdio.h #include bool.h // 位处理 #include tables.h void BitsCopy(bool *DatOut,bool *DatIn,int Len); // 数组复制 void ByteToBit(bool *DatOut,char *DatIn,int Num); // 字节到位 void BitToByte(char *DatOut,bool *DatIn,int Num); // 位到字节 void HexToBit(bool *DatOut,char *DatIn,int Num); // 十六进制到二进制 void LoopMove(bool *DatIn,int Len,int Num); // 循环左移 Len长度 Num移动位数 void Xor(bool *DatA,bool *DatB,int Num); // 异或函数 void S_

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档