Vigenere密码算法 维吉尼亚 java程序 eclipse 编译

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

Vigenere密码算法java程序实现大连工业大学信计09程序分为四个类Vigenere.......................主运行类Menu.......................菜单类Regex.......................输入格式检验类Operate.......................执行操作算法类一.Vigenere.......................主运行类:publicclassVigenere{publicstaticvoidmain(String[]args){newVigenere().start();}privatevoidstart(){Menumenu=newMenu();menu.menu();}}二.Menu.......................菜单类:importjava.util.Scanner;publicclassMenu{publicvoidmenu(){System.out.println(*************************);System.out.println(******1。加密操作********);System.out.println(*************);System.out.println(******2。解密操作********);System.out.println(*************);System.out.println(******3。退出程序********);System.out.println(*************************);while(true){Operateo=newOperate();System.out.println(请输入需要执行的操作代码,1,2或3);Scannersc=newScanner(System.in);Stringstr=sc.nextLine();intkey=Integer.parseInt(str);switch(key){case1:o.jiaMi();break;case2:o.jieMi();break;case3:System.exit(0);default:System.out.println(请正确输入操作代码1,2或3:);break;}}}}三.Regex.......................输入格式检验类:importjava.util.Scanner;publicclassRegex{publicstaticStringexpresslyRegex(){//对输入明文进行检验Scannersc=newScanner(System.in);Stringregex=[a-z]{1,500};StringinputStr;while(true){System.out.println(请输入需要加密的明文,1-500位小写字母);inputStr=sc.nextLine();if(inputStr.matches(regex)){returninputStr;}System.out.println(输入内容有误,请从新输入需要加密的明文,1-500位小写字母!);}}publicstaticStringkeyRegex(){//对输入密钥进行检验Scannersc=newScanner(System.in);Stringregex=[a-z]{1,500};StringinputStr;while(true){System.out.println(请输入密钥,1-500位小写字母);inputStr=sc.nextLine();if(inputStr.matches(regex)){returninputStr;}System.out.println(输入内容有误,请从新输入密钥,1-500位小写字母!);}}publicstaticStringciphertextRegex(){//对输入明文进行检验Scannersc=newScanner(System.in);Stringregex=[a-z]{1,500};StringinputStr;while(true){System.out.println(请输入需要解密的密文,1-500位小写字母);inputStr=sc.nextLine();if(inputStr.matches(regex)){returninputStr;}System.out.println(输入内容有误,请从新输入需要解密的密文,1-500位小写字母!);}}}四.Operate.......................执行操作算法类:importjava.util.Vector;publicclassOperate{publicvoidjiaMi(){//加密方法Stringv=;VectorStringvexpressly=newVectorString();//定义明文数组vexpressly.add(Regex.expresslyRegex());//检验格式后加入明文数组VectorStringvkey=newVectorString();//定义密钥数组vkey.add(Regex.keyRegex());//检验格式后加入密钥数组System.out.println(明文为+vexpressly);System.out.println(密钥为+vkey);for(Stringa:vexpressly){//将输入的明文与密文从数组类型转换成String类型for(Stringb:vkey){for(inti=0;ia.length();i++){intj=i%(b.length());chars=(char)(((int)a.charAt(i)+b.charAt(j)-194)%26+97);//对应的密文v=v+s;//把生成的密文字符逐个加到v上}}}System.out.println(生成的密文为:+v);}publicvoidjieMi(){//解密方法Stringv=;VectorStringciphertext=newVectorString();//定义密文数组ciphertext.add(Regex.ciphertextRegex());VectorStringvkey=newVectorString();//定义密钥数组vkey.add(Regex.keyRegex());System.out.println(密文为+ciphertext);System.out.println(密钥为+vkey);for(Stringa:ciphertext){for(Stringb:vkey){for(inti=0;ia.length();i++){intj=i%(b.length());chars=(char)((((int)a.charAt(i)+26)-b.charAt(j))%26+97);//解密的过程v=v+s;}}}System.out.println(对应的明文为:+v);}}程序结果截图:

1 / 5
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功