zoukankan      html  css  js  c++  java
  • 凯撒加密解密(java字母移位)

    1.设计思想:加密就是将字符数据转化为ASC码表中的数字,a—w之间通过加3之后再转化为字符型输出,x—z之间通过转化为ASC码表中的数字后减去23再转化为字符型输出。解密就是将字符数据转化为ASC码表中的数字,d—z之间通过减去3之后再转化为字符型输出,a—c之间通过转化为ASC码表中的数字后加23再转化为字符型输出。

    2.程序流程图

    3.程序源码

    import java.util.Scanner;
    public class Code {
    //严羽卿 凯撒加密与解密  2015 10 23
     public static void main(String[] args) {
      // TODO Auto-generated method stub
      String input = null;
      Scanner sc = new Scanner(System.in);
      System.out.println("请输入字母:");
      input = sc.next();
      StringBuffer code = new StringBuffer();
            Scanner sc1=new Scanner(System.in);
      System.out.println("加密请按1,解密请按2:"); 
            int p;
            p=sc1.nextInt();     
            if(p==1)
            {
          System.out.println("加密之后为:");     
          for(int i = 0;i < input.length();i++)
          {
           char x = input.charAt(i);
           
           if(x >= 'a' && x <= 'w')
           {
            x = (char)(x+3);
            code.append(x);
           }
           if(x >= 'x' && x <= 'z')
           {
            x=(char)(x-23);
            code.append(x);
           }
           
           if(x >= 'A' && x <= 'W')
           {
            x = (char) (x+3);

            code.append(x);
           }
           if(x >= 'X' && x <= 'Z')
           {
            x=(char)(x-23);
            code.append(x);
           }

          } 
            }
            if(p==2)
            {
          System.out.println("解密:");
          for(int i = 0;i < input.length();i++)
          {
           char x = input.charAt(i);
           if(x >= 'a' && x <= 'c')
           {
            x=(char)(x+23);
            code.append(x);
           }
           else if(x >= 'd' && x <= 'z')
           {
            x = (char)(x-3);
            code.append(x);
           }
           else if(x >= 'A' && x <= 'C')
           {
            x=(char)(x+23);
            code.append(x);
           }
           
           else if(x >= 'D' && x <= 'Z')
           {
            x = (char) (x-3);

            code.append(x);
           }

          }
            }
      System.out.println(code);
     

     }

    }

    4.结果截图

  • 相关阅读:
    案例详解:MTU不一致导致主机和RAC不断重启
    近千人观看live,晚8点继续安排,2个CPU过高案例+1个文件数据删除案例->Oracle故障分析的方法论+DBA能力提升要领...
    一个模版让报表自动生成,领导:这才是数据分析人该干的事
    如何构造一个 SYN_SENT 状态的连接
    TCP 3次握手原理
    SpringCloud Alibaba微服务番外一
    socket bind 随机端口
    Yii项目Security加密解密类提取
    linux中iptables配置文件及命令详解详解
    linux中iptables配置文件及命令详解详解
  • 原文地址:https://www.cnblogs.com/yanyuqing/p/4903977.html
Copyright © 2011-2022 走看看