欢迎来到天天文库
浏览记录
ID:9287426
大小:179.00 KB
页数:7页
时间:2018-04-26
《仿射密码和置换密码》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、福州大学数学与计算机科学学院《计算机密码学》上机实验报告专业和班级数学2班姓名吴少敦成绩学号030801212实验名称古典密码学实验实验目的和要求(1)练习古典密码学的加密和解密;(2)练习仿射密码和置换密码的加密和解密实验任务(1)熟悉仿射密码。(2)熟悉置换密码。实验内容仿射密码:importjava.util.Scanner;publicclassFangsheMima{publicFangsheMima(){System.out.println("请输入两个密钥:");Scannersacn1=newScanner(Syste
2、m.in);intk1=sacn1.nextInt();intk2=sacn1.nextInt();if(gcd(k1,26)!=1){System.out.println("密钥错误!!!");}else{booleanboo=true;do{System.out.print("请选择功能:");System.out.print("1:加密");System.out.print("2:解密");System.out.println("3:退出");intt=sacn1.nextInt();switch(t){case1:System
3、.out.println("请输入明文:");Scannersacn2=newScanner(System.in);Stringmingwen=sacn2.nextLine();System.out.println("明文:"+mingwen);System.out.println("密钥:k1="+k1+",k2="+k2);System.out.println("密文:"+jiaMi(mingwen,k1,k2));break;case2:System.out.println("请输入密文:");Scannersacn3=newS
4、canner(System.in);Stringmiwen=sacn3.nextLine();System.out.println("密文:"+miwen);System.out.println("密钥:k1="+k1+",k2="+k2);System.out.println("明文:"+jieMi(miwen,k1,k2));break;case3:boo=false;System.out.println("已经退出!!!");break;}}while(boo);}}publicintgcd(inta,intb){intk=0;
5、do{k=a%b;a=b;b=k;}while(k!=0);returna;}//辗转相除球最大公约数publicintni(inta,intb){inti=1;while(a*i%b!=1){i++;}returni;}//a相对b的逆publicStringjiaMi(Stringmingwen,intk1,intk2){Stringmiwen="";char[]c=newchar[mingwen.length()];for(inti=0;i6、>='a'&&c[i]<='z'){c[i]=(char)((k1*(c[i]-'a')+k2)%26+'a');}elseif(c[i]>='A'&&c[i]<='Z'){c[i]=(char)((k1*(c[i]-'A')+k2)%26+'A');}miwen+=c[i];}returnmiwen;}//加密publicStringjieMi(Stringmiwen,intk1,intk2){Stringmingwen="";char[]c=newchar[miwen.length()];inttem=0;for(inti=0;i7、64&&c[i]<91){tem=(ni(k1,26)*((c[i]-65)-k2))%26;if(tem<0){c[i]=(char)(tem%26+26+65);}else{c[i]=(char)(tem%26+65);}}elseif(c[i]>97&&c[i]<123){tem=(ni(k1,26)*((c[i]-97)-k2))%26;if(tem<0){c[i]=(char)(tem%26+26+97);}else{c[i]=(char8、)(tem%26+97);}}mingwen+=c[i];}returnmingwen;}//解密publicstaticvoidmain(String[]args){newFangsheMima();}}置换密码:pa
6、>='a'&&c[i]<='z'){c[i]=(char)((k1*(c[i]-'a')+k2)%26+'a');}elseif(c[i]>='A'&&c[i]<='Z'){c[i]=(char)((k1*(c[i]-'A')+k2)%26+'A');}miwen+=c[i];}returnmiwen;}//加密publicStringjieMi(Stringmiwen,intk1,intk2){Stringmingwen="";char[]c=newchar[miwen.length()];inttem=0;for(inti=0;i
7、64&&c[i]<91){tem=(ni(k1,26)*((c[i]-65)-k2))%26;if(tem<0){c[i]=(char)(tem%26+26+65);}else{c[i]=(char)(tem%26+65);}}elseif(c[i]>97&&c[i]<123){tem=(ni(k1,26)*((c[i]-97)-k2))%26;if(tem<0){c[i]=(char)(tem%26+26+97);}else{c[i]=(char
8、)(tem%26+97);}}mingwen+=c[i];}returnmingwen;}//解密publicstaticvoidmain(String[]args){newFangsheMima();}}置换密码:pa
此文档下载收益归作者所有