凯撒加密
Posted 喜欢二福的沧月君
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了凯撒加密相关的知识,希望对你有一定的参考价值。
古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报:
解题思路:
键盘盘输入字符串,把字符串转换成数组,在数组中把根据ASCII表+3,在利用StringBuffer转换回字符串,解码原理相同。
程序框图:
程序
程序代码:
import java.util.Scanner;
class jiami
{
String b;
public jiami(String a)
{
b=a;
int m=b.length();
char [] ch = b.toCharArray();
for(int i=0;i<m;i++)
{
if((ch[i]>87&&ch[i]<91)||(ch[i]>118&&ch[i]<123))
ch[i]=(char) (ch[i]-23);
else
ch[i]=(char) ((ch[i])+3);
}
StringBuffer arr = new StringBuffer();
for(int i=0;i<m;i++)
{
arr.append(ch[i]);
}
String newstr = arr.toString();
System.out.println("加密后的密码是:"+newstr);
}
}
class jiemi
{
String b;
public jiemi(String a)
{
b=a;
int m=b.length();
char [] ch = b.toCharArray();
for(int i=0;i<m;i++)
{
if((ch[i]>97&&ch[i]<99)||(ch[i]>87&&ch[i]<91))
ch[i]=(char) (ch[i]+23);
ch[i]=(char) (ch[i]-3);
}
StringBuffer arr = new StringBuffer();
for(int i=0;i<m;i++)
{
arr.append(ch[i]);
}
String newstr = arr.toString();
System.out.println("解密后的密码是:"+newstr);
}
}
public class homework1 {
public static void main(String args[]){
Scanner cin=new Scanner(System.in);
System.out.println("请选择加密,还是解密,加密按1,解密按2");
int m=cin.nextInt();
if(m==1)
{
String a;
System.out.println("请输入密码");
a=cin.next();
jiami jia=new jiami(a);
}
else if(m==2)
{
String a;
System.out.println("请输入密码");
a=cin.next();
jiemi jie=new jiemi(a);
}
else System.out.println("输入错误");
}
}
截图:
以上是关于凯撒加密的主要内容,如果未能解决你的问题,请参考以下文章