文本加密娱乐版(Java)
程序员文章站
2024-03-12 22:20:32
...
文字加密简易版(用Java编写)
- 简易文字加密 (纯属娱乐)
- 文字加密原理: ASCLL码(编码)的加减乘除运算, 即加减偏移量。举一个栗子,输出
a,b,c
,将所有字符的ASCLL码加1(即偏移量为1)后再打印出来就变成了b-c-d
, 将所有字符的ASCLL码加2(偏移量为2),则打印出来是c.d.e
,从输出的字符串的内容不能一眼就看出最初想要传达的信息 - 加密密码原理: 把偏移量当做密码即可, 只有输出正确的偏移量(即密码)才能输出正确的原文.
import java.util.Scanner;
public class Dochar {
public static int EXP = 0;
//加密
public String encrypt(String str1){
StringBuffer buf = new StringBuffer();
char[] cs = str1.toCharArray();
char a;
for (int i = 0; i < cs.length; i++) {
a = (char) ((int)cs[i] + EXP);
buf.append(a);
}
return buf.toString();
}
//解密
public String reencrypt(String str2){
StringBuffer buf = new StringBuffer();
char[] cs = str2.toCharArray();
char a;
for (int i = 0; i < cs.length; i++) {
a = (char)((int)cs[i] - EXP);
buf.append(a);
}
return buf.toString();
}
public static void main(String[] args) {
System.out.println("欢迎进入简易文字加密系统!");
int n = 1;
while(n!=0) {
String[] newArrayStrings = { "1.加密文字", "2.解密文字", "3.退出系统" };
for (int i = 0; i < newArrayStrings.length; i++) {
System.out.println("******" + newArrayStrings[i] + "******");
}
System.out.println("*************************************");
Scanner scanner = new Scanner(System.in);
Dochar dochar = new Dochar();
n = scanner.nextInt();
switch (n) {
case 1: System.out.println("进入加密功能区");
System.out.println("请输入4位加密密码(纯数字):");
EXP = scanner.nextInt();
System.out.println("请输入要加密的文本:");
String str1 = scanner.next();
//System.out.println("原内容:" + str1);
String result1 = dochar.encrypt(str1);
System.out.println("加密后:\n" + result1);
break;
case 2: System.out.println("进入解密功能区");
System.out.println("请输入4位解密密码(纯数字):");
EXP = scanner.nextInt();
System.out.println("请输入要解密的文本:");
String str2 = scanner.next();
//System.out.println("原内容:" + str2);
String result2 = dochar.reencrypt(str2);
System.out.println("解密后:\n" + result2);
break;
case 3: System.out.println("退出成功!");
n = 0;
break;
}
}
}
}
交互性输出例子:
欢迎进入简易文字加密系统!
******1.加密文字******
******2.解密文字******
******3.退出系统******
*************************************
1
进入加密功能区
请输入4位加密密码(纯数字):
1111
请输入要加密的文本:
你好
加密后:
厷巔
******1.加密文字******
******2.解密文字******
******3.退出系统******
*************************************
2
进入解密功能区
请输入4位解密密码(纯数字):
1111
请输入要解密的文本:
厷巔
解密后:
你好
******1.加密文字******
******2.解密文字******
******3.退出系统******
*************************************
3
退出成功!