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

    1.程序设计思想

    ①  定义一个类,在类中定义加密,解密的方法,后期可由用户选择进行加密操作还是解密操作。

    ②  在类中,数据成员为String类型的变量,构造函数有一个参数用于为数据成员赋值。

    ③  在加密函数中,将字符串转为字符数组,利用循环将数组中的每一个字符进行+、-操作,将其转换为加密后对应的字符,然后将加密后的字符串输出到屏幕。

    ④  解密函数与加密函数类似。

    ⑤  在主函数中,提示用户输入字符串后,定义对象,将用户输入的字符串作为其参数。

    ⑥  提示用户想要进行的操作(加密/解密),用户输入选项后,根据用户的选项调用相应的方法。

    2.程序流程图

     

    3.程序源代码

    import java.util.Scanner;
    public class StringEncryption {
    
        /**
         * @param args
         */
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            System.out.println("请输入字符串:");//提示用户输入字符串
            Scanner input=new Scanner(System.in);
            String letter="***";//对字符串进行初始化
            int choose=0;
            if(input.hasNextLine())//判断用户输入是否合法
            {
                letter=input.nextLine();//用户输入合法
            }
            else//用户输入不合法,报错并结束程序
            {
                System.out.println("输入错误!");
                System.exit(0);
            }
            Rome R=new Rome(letter);//定义对象
            System.out.println("请选择您要进行的操作:1.加密  2.解密");//提示用户选择想要进行的操作
            System.out.println("请选择:");
            if(input.hasNextInt())//判断用户输入是否合法
            {
                choose=input.nextInt();//输入合法
            }
            else//用户输入不合法,报错并结束程序
            {
                System.out.println("输入错误!");
                System.exit(0);
            }
            if(choose==1)//用户选择对字符串加密
            {
                R.encryption();//调用加密的函数
            }
            else if(choose==2)//用户选择对字符串进行解密
            {
                R.decryption();//调用解密的函数
            }
            else//用户输入错误,报错并结束程序
            {
                System.out.println("输入错误!");
                System.exit(0);
            }
        }
    
    }
    
    class Rome//定义Rome类实现加密和解密的功能
    {
        String string;
        public Rome(String string)//构造函数对数据成员进行初始化
        {
            this.string=string;
        }
        
        public void encryption()//实现加密功能
        {
            char letter[]=new char[string.length()];//定义与字符串等长的数组
            letter=string.toCharArray();//将字符串转换为数组
            int i=0;
            for(i=0;i<string.length();i++)//将字符转换为加密后的字符
            {
                if((letter[i]>=65&&letter[i]<=87)||(letter[i]>=97&&letter[i]<=119))
                {
                    letter[i]+=3;
                }
                else
                {
                    letter[i]-=23;
                }
            }
            for(i=0;i<string.length();i++)//将加密后的字符串输出到屏幕
            {
                System.out.print(letter[i]);
            }
            
        }
        
        
        public void decryption()//实现加密功能
        {
            char letter[]=new char[string.length()];//定义与字符串等长的数组
            letter=string.toCharArray();//将字符串转换为数组
            int i=0;
            for(i=0;i<string.length();i++)//将字符转换为解密后的字符
            {
                if((letter[i]>=68&&letter[i]<=90)||(letter[i]>=100&&letter[i]<=122))
                {
                    letter[i]-=3;
                }
                else
                {
                    letter[i]+=23;
                }
            }
            for(i=0;i<string.length();i++)//将解密后的字符串输出到屏幕
            {
                System.out.print(letter[i]);
            }
            System.out.print("
    ");
        }
        
    
    }

    4.结果截图

  • 相关阅读:
    全新通用编程语言 Def 招募核心贡献者、文档作者、布道师 deflang.org
    全球最快的JS模板引擎:tppl
    4行代码实现js模板引擎
    [Node.js框架] 为什么要开发 Codekart 框架
    Android用BusyBox替换系统toolbox
    纪念一下,昨天换手机了
    在Android上使用gcc编译C/C++源程序
    关于BAPI_ACC_DOCUMENT_POST解读
    关于ABAP和JSON互相转换
    关于客户和供应商预制凭证添加WBS字段
  • 原文地址:https://www.cnblogs.com/qilin20/p/7736654.html
Copyright © 2011-2022 走看看