java实现凯撒密码简单破解
来源:互联网 发布:单片机音乐代码生成器 编辑:程序博客网 时间:2024/05/21 21:46
import java.util.Scanner;/** * java实现凯撒密码简单破解 * 密码:凯撒密码 * 凯撒(Caesar)密码是一种基于字符替换的对称式加密方法,它是通过对26个英文字母循环移位和替换来进行编码的。设待加密的消息为"Alibaba Group",加密后的密文是"RCzsrsr XIFLG",则采用的密匙k是____。 */public class TestCaesar {public static void main(String[] args) {System.out.println("凯撒密码破解法");String text="baba";String miwen="RCzsrsr XIFLG";for(int key=0;key<64;key++){String data=Decrypt(miwen, key);if(data.indexOf(text)!=-1){System.out.println("key="+key);System.out.println(data);break;}}System.out.println("finish");}public static void main2(String[] args) {System.out.println("[A 加密][J 解密],Please Choose One");Scanner c = new Scanner(System.in);// 创建Scanner键盘输入对象String s1 = c.nextLine();// 获取本行的字符串if (s1.equalsIgnoreCase("A")) {System.out.println("请输入明文:");Scanner sc = new Scanner(System.in);String s = sc.nextLine();System.out.println("请输入密钥:");Scanner sc1 = new Scanner(System.in);int key = sc1.nextInt();// 将下一个输入项转换成int类型String string=Encryption(s, key);System.out.println(s + " 加密后为: " + string);} else if (s1.equalsIgnoreCase("J")) {System.out.println("请输入密文:");Scanner sc = new Scanner(System.in);String s = sc.nextLine();System.out.println("请输入密钥:");Scanner sc1 = new Scanner(System.in);int key = sc1.nextInt();// 将下一个输入项转换成int类型String string=Decrypt(s, key);// 調用解密方法System.out.println(s + " 加密后为: " + string);}}public static String Encryption(String str, int k) {// 加密String string = "";for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);if (c >= 'a' && c <= 'z') {// 如果字符串中的某个字符是小写字母c += k % 26;// 移动key%26;if (c < 'a')c += 26;if (c > 'z')c -= 26;} else if (c >= 'A' && c <= 'Z') {// 如果字符串中的某个字符是大写字母c += k % 26;// 移动key%26;if (c < 'A')c += 26;if (c > 'Z')c -= 26;}string += c;// 将加密后的字符串连成字符串}return string;}public static String Decrypt(String str, int n) {// 解密int k = Integer.parseInt("-" + n);String string = "";for (int i = 0; i < str.length(); i++) {char c = str.charAt(i);if (c >= 'a' && c <= 'z') {// 如果字符串中的某个字符是小写字母c += k % 26;// 移动key%26;if (c < 'a')c += 26;if (c > 'z')c -= 26;} else if (c >= 'A' && c <= 'Z') {// 如果字符串中的某个字符是大写字母c += k % 26;// 移动key%26;if (c < 'A')c += 26;if (c > 'Z')c -= 26;}string += c;// 将解密后的字符串连成字符串}return string;}}
0 0
- java实现凯撒密码简单破解
- 暴力破解凯撒密码python实现
- 凯撒密码的java实现
- 破解凯撒密码
- 凯撒密码破解
- 破解凯撒密码
- 凯撒密码的Java语言实现
- 凯撒密码加密解密--JAVA实现(基础)
- 破解凯撒密码(离散数学)
- java简单密码破解
- 凯撒密码的简单改进
- 凯撒密码,简单的加密
- Java IO4 实现凯撒密码加密解密文本文件
- 频率分析法破解凯撒密码
- C++实现凯撒密码加密
- 扩展的凯撒密码实现
- python版实现凯撒密码
- java解决凯撒密码问题
- 安卓几种图片加载框架的比较
- 物体检测及分类
- CSS第一天
- 编译报错:Duplicate Symbols for Architecture arm64
- 添加VLC模块
- java实现凯撒密码简单破解
- 表达式计算
- linux的计划任务
- OmniGraffle v6 注册码
- CString与string类型互相转换、CString转化为LPCSTR、TCHAR转化为CString、CString型字符串连接
- java 基础学习笔记2
- PAT 乙级 1039. 到底买不买(20)Java版
- Android系统下不同字体的环境判断
- HTTP请求的GET与POST方式的区别