• 凯撒加密解密(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.结果截图

  • 相关阅读:
    Oracle 定时查询数据插入新表中(job+存储过程)
    serialVersionUID的作用
    如何解决"The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path"
    如何解决maven archetype加载太慢的方法
    Java中NIO、BIO、AIO相关概念及应用场景
    Sql多条件排序
    Oracle学习笔记—Oracle左连接、右连接、全外连接以及(+)号用法(转载)
    Oracle学习笔记—oracle体系架构及状态(nomount、mount和open)简介
    Oracle学习笔记—归档模式
    Oracle学习笔记—Db_name、Db_domain、Global_name、Service_name、Instance_name和Oracle_SID(转载)
  • 原文地址:https://www.cnblogs.com/yanyuqing/p/4903977.html
Copyright © 2020-2023  润新知