欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

文本加密娱乐版(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
退出成功!