实验二 恺撒密码
一、实验目的
1. 掌握Java数组的基本操作。
2.掌握String类的生成、访问、修改等基本操作;
3.掌握StringBuffer类的生成、访问、修改等基本操作。
4. 掌握 Pattern和Matcher对象的用法,以及正则表达式的应用
二、实验要求
1.正确地定义数组;
2.正确对数组元素进行赋值、排序。
3.正确使用String类的方法;
4.正确使用StringBuffer类的方法。
5. 正确书写正则表达式和使用Pattern和Matcher对象
三、实验环境
1.计算机一台;
2.JDK、MyEclipse工具软件。
四、实验内容
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小时内删除。
发表评论