zoukankan      html  css  js  c++  java
  • 字符串加密

    问题:

    古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:

    请编写一个程序,使用上述算法加密或解密用户输入的英文字串要求设计思想、程序流程图、源代码、结果截图。

    设计思想:

    输入一个字符串,将字符串每个位置的字符强制转化为int型,将所得到的ascll代码加3,a-z的Ascll码为97-122,如果加3之后超过122则从97开始。

    最后将字符串每个位置用+3之后的字符代替。输出加密后的字符串。解密字符串原理同上。

    流程图:

    源代码:


    //翟超科 信1605-3 20163607
    import java.util.Scanner;

    public class JiamiString
    {

      public static String s;
      static Scanner in=new Scanner(System.in);
      public static void jiami()
      {
        System.out.println("请输入一个字符串:");
        s=in.next();
        System.out.println("加密后的字符串为:");
        for(int i=0;i<s.length();i++)
        {
          int t=s.charAt(i);
          if(t+3>122&&(t+3)<126)
          {
            t=t-29;
            s=s.replace(s.charAt(i),(char)t);
          }
          if(t==32)
          {
            s=s.replace(s.charAt(i),' ');
          }
          else
          {
            s=s.replace(s.charAt(i),(char)(t+3));
          }

        }

        System.out.println(s);
      }
      static void jiemi()
      {
        System.out.println("请输入一个加密的字符串:");
        s=in.next();
        System.out.println("解密后的字符串为:");
        for(int i=0;i<s.length();i++)
        {
          int t=s.charAt(i);
          if(t-3<97)
          {  
            t=t+29;
            s=s.replace(s.charAt(i),(char)t);
          }
          if(t==32)
          {
            s=s.replace(s.charAt(i),' ');
          }
          else
          {
            s=s.replace(s.charAt(i),(char)(t-3));
          }

        }

        System.out.println(s);
      }
      static void print()
      {
        System.out.println("欢迎来到字符串解密系统");
        System.out.println(" 1、字符串加密");
        System.out.println(" 2、字符串解密");
        System.out.println(" 3、退出");
        System.out.println("请输入相应的操作:");
      }
      static void run()
      {
        while(true)
        {
          print();
          int t=in.nextInt();
          switch(t)
          {
            case 1:
              jiami();
              break;  
            case 2:
              jiemi();
              break;
            case 3:
              System.out.println("退出成功");
              System.exit(0);
          }

        }
      }
      public static void main(String[] args)
      {
        // TODO 自动生成的方法存根
        run();
      }
    }

     程序截图:

  • 相关阅读:
    atitit.html编辑器的设计要点与框架选型 attilax总结
    test
    atitit.提取zip rar文件列表 java php c# 的原理与设计
    atitit.破解 拦截 绕过 网站 手机 短信 验证码 之自动获取手机短信方式 attilax 总结
    Atitit.angular.js 使用最佳实践 原理与常见问题解决与列表显示案例 attilax总结
    SQL2008附加数据库提示错误:5120
    C++函数转换成C#函数
    Nhibernate cookbook 3.0-翻译
    黄聪:如何使用CodeSmith批量生成代码(转:http://www.cnblogs.com/huangcong/archive/2010/06/14/1758201.html)
    给JavaScript初学者的24条最佳实践(转:http://www.cnblogs.com/yanhaijing/p/3465237.html)
  • 原文地址:https://www.cnblogs.com/2016-zck/p/7737532.html
Copyright © 2011-2022 走看看