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.结果截图

  • 相关阅读:
    个推微服务网关架构实践
    NB-IoT 的“前世今生”
    个推基于Consul的配置管理
    个推Node.js 微服务实践:基于容器的一站式命令行工具链
    个推用户画像的实践与应用
    TensorFlow分布式实践
    个数是如何用大数据做行为预测的?
    QCon技术干货:个推基于Docker和Kubernetes的微服务实践
    基于CMS的组件复用实践
    数据可视化:浅谈热力图如何在前端实现
  • 原文地址:https://www.cnblogs.com/yanyuqing/p/4903977.html
Copyright © 2011-2022 走看看