电脑桌面
添加小米粒文库到电脑桌面
安装后可以在桌面快捷访问

四种加密解密算法的源代码:移位密码、仿射密码

四种加密解密算法的源代码:移位密码、仿射密码_第1页
1/6
四种加密解密算法的源代码:移位密码、仿射密码_第2页
2/6
四种加密解密算法的源代码:移位密码、仿射密码_第3页
3/6
四种加密解密算法的源代码:移位密码、仿射密码、维吉尼亚密码以及置换密码 #include #include #include #include void Shift() /*移位密码*/ { char c[100]; int length, i=0, key=0; clrscr(); printf("********Shift Cipher********\nPlease input primal sentence: "); gets(c); length = strlen(c); printf("Input the key(0~ 26): "); scanf("%d", &key); getchar(); if(key<0) { printf("The value of key is error!\nPress any key to return..."); getch(); return; } for(i=0; i96&&c[i]<123) c[i] = (c[i]+key-97)%26+65; else if(c[i]>64&&c[i]<91) c[i] = (c[i]+key-65)%26+65; } printf("Result is: %s\n", c); for(i=0; i64&&c[i]<91) c[i] = (c[i]-key-65+26)%26+97; } printf("\nAfter translated the sentence,we can see the primal sentence as follow:\n%s\n", c); printf("Press any key to return..."); getch(); } int gcd(int a, int b) /*辗转相除法求a,b 的最大公因数*/ { int k = 0; do { k = a%b; a = b; b = k; }while(k!=0); return a; } int Ni(int a, int b) /*求a 相对于 b 的逆*/ { int i = 0; while(a*(++i)%b!=1); return i; } void Affine() /*仿射密码*/ { char c[100]; int length, i=0, ka=0, kb=0, tmp; clrscr(); printf("********Affine Cipher********\nPlease input primal sentence: "); gets(c); length = strlen(c); printf("Input the key(2 numbers): "); scanf("%d%d", &ka, &kb); getchar(); if(gcd(ka,26)!=1) { printf("The value of the key is error!\nPress any key to return..."); return; } for(i=0; i96&&c[i]<123) c[i] = (ka*(c[i]-97)+kb)%26+65; else if(c[i]>64&&c[i]<91) c[i] = (ka*(c[i]-65)+kb)%26+65; } printf("Result is: %s\n", c); for(i=0; i64&&c[i]<91) { tmp = Ni(ka,26)*((c[i]-65)-kb); if(tmp<0) c[i] = tmp%26+26+97; else c[i] = tmp%26+97; } } printf("\nAfter...

1、当您付费下载文档后,您只拥有了使用权限,并不意味着购买了版权,文档只能用于自身使用,不得用于其他商业用途(如 [转卖]进行直接盈利或[编辑后售卖]进行间接盈利)。
2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。
3、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。

碎片内容

四种加密解密算法的源代码:移位密码、仿射密码

确认删除?
VIP
微信客服
  • 扫码咨询
会员Q群
  • 会员专属群点击这里加入QQ群
客服邮箱
回到顶部