实验二    恺撒密码
一、实验目的
1. 掌握Java数组的基本操作。
2.掌握String类的生成、访问、修改等基本操作;
3.掌握StringBuffer类的生成、访问、修改等基本操作。
4. 掌握 PatternMatcher对象的用法,以及正则表达式的应用
二、实验要求
1.正确地定义数组;
2.正确对数组元素进行赋值、排序。
3.正确使用String类的方法;
4.正确使用StringBuffer类的方法。
5. 正确书写正则表达式和使用PatternMatcher对象
三、实验环境
1.计算机一台;
2JDKMyEclipse工具软件。
四、实验内容
1.编写Application程序,实现凯撒密码,输入明文自动输出相应的密文。
五、实验步骤
1.处理输入,每次读入一行。
2.将该行转换为字符数组,依次处理每个字符,英文字母转换成相应的密文,其他字符(如标点符号)的密文和明文相同。
3. 整体输出该行的密文。
4. 选作:允许用户扩展凯撒密码,指定字符替换的规则,即可以输入密钥
六、凯撒密码介绍
凯撒密码是一种非常古老的加密方法,相传当年凯撒大地行军打仗时为了保证自己的命令不被敌军知道,就使用这种特殊的方法进行通信,以确保信息传递的安全。他的原理很简单,说到底就是字母于字母之间的替换。下面让我们看一个简单的例子:“baidu”用凯撒密码法加密后字符串变为“edlgx”,它的原理是什么呢?把“baidu”中的每一个字母按字母表顺序向后移3位,所得的结果就是刚才我们所看到的密文。
七、实验结果
源代码为:
package youximima;
import java.util.*;
public class Mima {
    /**
密码字符串是什么    * @param args
    */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
    //Scanner s =new Scanner(System.in);   
    System.out.println("凯萨密码!");
    System.out.println("请输入一串字符!");
    int k=1;
    while(k==1){
    System.out.println("凯撒密码法加密后的字符串为:");
    Scanner s =new Scanner(System.in);
    String Line();
    int i=c.length();
    if(i<=10)
    {char a[]=c.toCharArray();
    System.out.println(a);
    for(int j=0;j<a.length;j++)
    {  if(a[j]>='a'&&a[j]<='z')
        if(a[j]=='x')a[j]='a';
          else if(a[j]=='y')a[j]='b';
          else if(a[j]=='z')a[j]='c';
          else a[j]+=3; 
        if(a[j]>='A'&&a[j]<='Z')
        if(a[j]=='X')a[j]='A';
          else if(a[j]=='Y')a[j]='B';
          else if(a[j]=='Z')a[j]='C';
          else a[j]+=3; 
    }
    System.out.print("原文为:");
    System.out.println(a);
    }
    else System.out.println("密码个数超过限制范围!");
    System.out.println("需要继续吗若继续请按1,  退出按0!");
    int Int();k=m;
    }
    System.out.println("欢迎下次使用!");
    }
}
结果为:
凯萨密码!
请输入一串字符!
凯撒密码法加密后的字符串为:
alk12@#xz
alk12@#xz
原文为:don12@#ac
需要继续吗若继续请按1,  退出按0!
1
凯撒密码法加密后的字符串为:
sjkfJKJ%^YZ
密码个数超过限制范围!
需要继续吗若继续请按1,  退出按0!
1
凯撒密码法加密后的字符串为:
SFJ*8^knyz
SFJ*8^knyz
原文为:VIM*8^nqbc
需要继续吗若继续请按1,  退出按0!
0
欢迎下次使用!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。