信息安全基础实验报告——凯撒密码(java)

时间:2024.4.7

信息安全基础实验报告——凯撒密码(java)

一、       设计流程图

 


二、       源代码

import java.util.*;

publicclass Test {

    publicstaticvoid main(String[] args) {

       char[] s1 = newchar[1000];

       int i,n,a;

       for(i=65;i<91;i++)

       {

           s1[i]=(char)i;

       }

       Scanner scanner = new Scanner(System.in);

       System.out.printf("输入明文:");

         String s = scanner.next();

         a=s.length();

         System.out.printf("请设置偏移量:");

         n=scanner.nextInt();

         char[] m=newchar[a];

         for(i=0;i<a;i++){

             m[i]=s.charAt(i);

             int q=n%26;

             int p=m[i];

             if((p+q)<91){

                m[i]=s1[p+q];}

             else {

                m[i]=s1[p-26+q];}

             System.out.print(m[i]);

             } 

    }

}

三、       运行截图

运行,准备输入明文(英文大写):

输入要设置的偏移量值:

设置偏移量为3:

设置偏移量为10:

设置偏移量为36:


第二篇:凯撒加密器 java源代码


凯撒加密器

1、功能要求

开发基于控制台的凯撒加密系统。具体要求如下:

(1)根据用户的选择从控制台待加密或解密的字符串。如图-2和图-3所示。

(2)根据凯撒加密法,对字符串进行加密或解密

(3)加密或解密完成后,把结果输出到控制台。如图-4和图-5所示。

图-2 操作选择界面

图-3 输入字符串界面

图-4 加密后的界面

图-5 解密后的界面

2、类的设计

该系统中必须包括三个类。

输入台控制类(Swither)

Encryption(字符串加密类)

Decryption(字符串解密类)

3、具体要求及推荐实现步骤

       1、创建控制台控制类Switcher,用于和操作者交互。

       2、开发加密类Encryption,使用凯撒加密法对字符串加密,并把加密后的结果返回给Switcher。

       3、开发解密类Dncryption,使用凯撒加密法对字符串解密,并把解密后的结果返回给Switcher。

       凯撒加密法,就是将字母表中的每个字母向后移动3位,比如a被替换成d,b被替换成f,以此类推。字母表的最后三位xyz,会被替换为abc。比如hello,加密之后是khoor.对于拉丁字母之外的其他字符,一律不加密。

      

java源代码:

import java.util.Scanner;

public class Test {

       void mj(){

               Scanner in = new Scanner(System.in);

         System.out.print("请选择操作(1.加密 2.解密):");

         int n=in.nextInt();

         if(n == 1){

             System.out.print("请输入待加密的字符串:");

             String str = in.next();

             String jm="";

             int key = 3;

             for(int i = 0;i < str.length();i++){

                 char c = str.charAt(i);

                 if(c >= 'a'&&c <= 'z'){

                        if(c>='x'&&c<='z'){

                               c-=26;

                               c+=key;

                        }

                        else{

                               c+=key;

                        }

                 }

                 else if(c >= 'A'&&c <= 'Z'){

                        if(c>='X'&&c<='Z'){

                               c-=26;

                               c+=key;

                        }

                        else{

                               c+=key;

                        }

                 }

               

                 jm += c;

             }

             System.out.print("加密后的字符串是:"+jm);

             System.out.print("\n输入任意建继续,0结束程序:");

             n=in.nextInt();

             if(n==0){

                 System.out.print("  谢谢使用本程序,欢迎再次使用!");

             }

             else{

                 this.mj();

             }

         }

         else if(n == 2){

             System.out.print("请输入待解密的字符串:");

             String str = in.next();

             String jm="";

             int key = -3;

             for(int i = 0;i < str.length();i++){

                 char c = str.charAt(i);

                 if(c >= 'a'&&c <= 'z'){

                        if(c>='a'&&c<='c'){

                               c+=26;

                               c+=key;

                        }

                        else{

                               c+=key;

                        }

                 }

                 else if(c >= 'A'&&c <= 'Z'){

                        if(c>='A'&&c<='C'){

                               c+=26;

                               c+=key;

                        }

                        else{

                               c+=key;

                        }

                 }

               

                 jm += c;

             }

           System.out.println("解密后的字符串:"+jm);

           System.out.print("\n输入任意建继续,0结束程序:");

           n=in.nextInt();

           if(n==0){

                  System.out.print("  谢谢使用本程序,欢迎再次使用!");

           }

           else{

                  this.mj();

           }

       }

       else{

           System.out.print("请输入1或2,其他字符无效!\n输入任意建继续,0结束程序:");

           n=in.nextInt();

           if(n==0){

                  System.out.print("  谢谢使用本程序,欢迎再次使用!");

           }

           else{

                  this.mj();

           }

       }

       }

     public static void main(String[] args) {

            Test mj=new Test();

         System.out.println("******欢迎使用凯撒加密器******");

        mj.mj();

    

   }

}

更多相关推荐:
信息安全实验报告

中国地质大学江城学院信息安全实验报告姓名专业班级学号指导教师1目录实验1RAR文件密码破解3实验2用C语言编程实现凯撒密码加密4实验3扫描器XScan的使用5实验4宏病毒分析及清除实验6实验5实验6实验7实验1...

网络与信息安全实验报告

中国海洋大学课程名称:网络与信息安全任课教师:学生姓名:学生学号:专业班级:计算机信息保密2010级学院名称:信息科学与工程学院20XX年12月20日实验一(报文监听)一、实验目的1.安装、配置、使用、卸载报文…

信息安全实验报告

南昌航空大学实验报告课程名称信息安全实验名称共五次实验班级姓名同组人指导教师评定签名实验一木马攻击与防范一实验目的通过对木马的练习使读者理解和掌握木马传播和运行的机制通过手动删除木马掌握检查木马和删除木马的技巧...

信息安全实验报告--2

南昌航空大学实验报告20xx-09-27课程名称:信息安全实验名称:实验二网络端口扫描班级:080611学生姓名:谈家平学号:08061123指导教师评定:签名:一、实验目的通过练习使用网络端口扫描器,可以了解…

信息安全实验报告

武汉理工大学学生实验报告书实验课程名称信息安全开课学院计算机科学与技术学院指导老师姓名学生姓名学生专业班级20xx20xx学年第二学期实验课程名称信息安全实验课程名称信息安全实验课程名称信息安全

信息安全实验报告

实验一信息安全工程需求分析一实验目的掌握信息安全工程常用软件Visio20xx的使用掌握信息安全工程需求分析的一般步骤及信息安全需求分析说明书的编写二实验原理以教材中信息安全工程需求分析的理论为指导参考信息安全...

网络与信息安全-------实验指导书(8次)

网络与信息安全实验指导书目录实验1office口令破解工具aoxppr的使用实验2Word宏病毒实验实验3用C语言编程实现古典替代密码凯撒密码实验4ARP地址欺骗实验5TCP与UDP端口扫描实验6RealSpy...

信息安全实验报告

信息安全基础实验报告姓名田廷魁学号20xx27920xx6班级网工1201班ARP欺骗工具及原理分析Sniffer网络嗅探器一实验目的和要求实验目的1熟悉ARP欺骗攻击有哪些方法2了解ARP欺骗防范工具的使用3...

孙泽东 信息安全实验报告1

本科实验报告课程名称实验项目实验地点专业班级物联网工程学生姓名指导教师信息安全技术实验致远楼B3031101学号20xx001557孙泽东20xx年11月22日常用网络安全命令实验报告端口扫描与安全审计实验报告...

信息安全实验报告3-2

课程实验报告123

信息安全实验报告1-1

课程实验报告1234567

信息安全算法设计实验报告

装订线报告份数信息安全算法设计实验报告专业班级学生姓名学号班内序号年月日实验内容根据题目的要求编程实现相关信息安全的基本算法编程语言不限实验时间和地点安排时间课内上机时间地点信息安全实验室指导老师XX实验题目及...

信息安全实验报告(20篇)