您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 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);}}程序结果截图:
本文标题:Vigenere密码算法 维吉尼亚 java程序 eclipse 编译
链接地址:https://www.777doc.com/doc-6238724 .html