今天带来的是一个纯java实现的加密解密小程序
//这是控制台
import java.util.Scanner;
public class Switcher {
public static void main(String[] args) {
System.out.println("*****************************");
System.out.println("******欢迎使用凯撒加密解密器******");
System.out.println("*****************************");
System.out.println("请选择操作(1.加密,2.解密):");
Scanner in = new Scanner(System.in);
int choice = in.nextInt();//判断用户的选择
switch(choice) {
case 1:
System.out.println("请输入待加密的字符串:");
in.nextLine();
String jiami = in.nextLine();
Encryption enc = new Encryption();
System.out.println("加密后的字符串是:");
enc.encryption(jiami);
break;
case 2:
System.out.println("请输入待解密的字符串:");
in.nextLine();
String jiemi = in.nextLine();
Dncryption dnc = new Dncryption();
System.out.println("解密后的字符串是:");
dnc.dncryption(jiemi);
break;
default:
System.out.println("输入数据有误!");
}
in.close();
}
}
//这是一个加密类
public class Encryption {
public void encryption(String jiami) {
char[] temp = jiami.toCharArray();
int[] newtemp = new int[temp.length];
//将字符数组转化为整型
for (int i = 0; i < temp.length; i++) {
newtemp[i] = temp[i];
}
//循环每个整型数组数值
for (int i = 0; i < newtemp.length; i++) {
//判断是否为小写字母
if(newtemp[i] <= 122 && newtemp[i] >= 97) {
if(newtemp[i] == 120) {
newtemp[i] = 97;
} else if(newtemp[i] == 121) {
newtemp[i] = 98;
} else if(newtemp[i] == 122) {
newtemp[i] = 99;
} else {
newtemp[i] = newtemp[i] + 3;
}
}
//判断是否为大写字母
if(newtemp[i] <= 90 && newtemp[i] >= 65) {
if(newtemp[i] == 88) {
newtemp[i] = 65;
} else if(newtemp[i] == 89) {
newtemp[i] = 66;
} else if(newtemp[i] == 90) {
newtemp[i] = 67;
} else {
newtemp[i] = newtemp[i] + 3;
}
}
}
//输出字符
for (int i = 0; i < newtemp.length; i++) {
temp[i] = (char)newtemp[i];
System.out.print(temp[i]);
}
}
}
//这是一个解密类
public class Dncryption {
public void dncryption(String jiemi) {
char[] temp = jiemi.toCharArray();
int[] newtemp = new int[temp.length];
//将字符数组转化为整型
for (int i = 0; i < temp.length; i++) {
newtemp[i] = temp[i];
}
//循环每个整型数组数值
for (int i = 0; i < newtemp.length; i++) {
//判断是否为小写字母
if(newtemp[i] <= 122 && newtemp[i] >= 97) {
if(newtemp[i] == 97) {
newtemp[i] = 122;
} else if(newtemp[i] == 98) {
newtemp[i] = 121;
} else if(newtemp[i] == 99) {
newtemp[i] = 122;
} else {
newtemp[i] = newtemp[i] - 3;
}
}
//判断是否为大写字母
if(newtemp[i] <= 90 && newtemp[i] >= 65) {
if(newtemp[i] == 65) {
newtemp[i] = 88;
} else if(newtemp[i] == 66) {
newtemp[i] = 89;
} else if(newtemp[i] == 67) {
newtemp[i] = 90;
} else {
newtemp[i] = newtemp[i] - 3;
}
}
}
//输出字符
for (int i = 0; i < newtemp.length; i++) {
temp[i] = (char)newtemp[i];
System.out.print(temp[i]);
}
}
}