900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > 关于C语言实现凯撒加密算法

关于C语言实现凯撒加密算法

时间:2020-07-24 18:16:07

相关推荐

关于C语言实现凯撒加密算法

我们知道凯撒加密算法是将需要加密的明文的每个单元字符改为某几位之后的字符。

如加密五位:

原文:abcdef 密文:ghijk

算法原理

加密:q=p+n(mod 26)

解密:p=q-n(mod 26)

代码(无指针):

#include <stdio.h>#include <string.h>void test();int main() {//主函数int s=1;while(s){int q,w=0;printf("请选择加密/解密/退出(1/2/0)");scanf("%d",&q);//选择getchar();if(q==1){test(w);}else if(q==2){w=1;test(w);}else if(q==0){s=0;}else{printf("输入错误请重新输入");}}return 0;}void test(int w){char wordline[100];int i,k;if(w==1){printf("请输入密文:");}else{printf("请输入明文:");}gets(wordline);printf("输入k值(1-25):");scanf("%d%*c",&k);//需要改为第几个之后的字符if(w==1){k=26-k;}for(i=0; i<strlen(wordline); i++){if(wordline[i] >= 'A' && wordline[i] <= 'Z'){wordline[i] = ((wordline[i]-'A')+k)%26+'A';}else if(wordline[i] >= 'a' && wordline[i] <= 'z'){wordline[i] = ((wordline[i]-'a')+k)%26+'a';}}if(w==1){printf("解密后明文:%s",wordline);}else{printf("加密后密文:%s",wordline);}printf("\n");}

注:写代码时算法参考于凯撒加密算法_是Rong啊~的博客-CSDN博客_凯撒加密算法

结果(截图):

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。