用java 编写一个凯撒加密和解密
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用java 编写一个凯撒加密和解密相关的知识,希望对你有一定的参考价值。
凯撒加密器 要求小写字母abcd 加密后结果是 defg就是向后移动三位 如xzy = abc求源代码与思路注释。。
参考技术A import java.util.Scanner;public class Caeser
private String table; // 定义密钥字母表
private int key; // 定义密钥key
public Caeser(String table, int key)
// 根据不同的字母表和不同的密钥生成一个新的凯撒算法,达到通用的目的
super();
this.table = table;
this.key = key;
public String encrypt(String from)
//凯撒加密算法,传入明文字符串,返回一个密文字符串
String to = "";
for (int i = 0; i < from.length(); i++)
to += table.charAt((table.indexOf(from.charAt(i))+key)%table.length());
return to;
public static void main(String[] args)
Caeser caeser = new Caeser("abcdefghijklmnopqrstuvwxyz", 3);
Scanner scanner = new Scanner(System.in);
System.out.println("请输入要加密的字符串");
String str =scanner.nextLine(); //输入字符串 security
String result = caeser.encrypt(str); //调用加密方法进行加密
System.out.print(result); // 可得结果 vhfxulwb
参考技术B ascii码增加3不就行了吗
凯撒加密
一、古罗马皇帝凯撒在打仗时曾经使用过以下方法加密军事情报: 请编写一个程序,使用上述算法加密或解密用户输入的英文字串
程序:
package demo;
/*
* 凯撒加密
* 杜泽坤
*/
import java.util.*;
public class Addmi {
public static void main(String[]args){
System.out.println("请输入要加密的字符");
Scanner m=new Scanner(System.in);
String str=m.next();
char n[]=str.toCharArray(); //将字符串转化成字符数组
for(int i=0;i<str.length();i++)
{
n[i]=(char)(n[i]+3);
if((n[i]>90&&n[i]<97)||n[i]>122)
{
n[i]=(char)(n[i]-26);
}
StringBuffer q = new StringBuffer();
for( i=0;i<str.length();i++)
{
q.append(n[i]);
}
String nstr = q.toString();
System.out.println("加密之后的字符串:"+"\n"+nstr);
}
}
}
设计思想:
把输入的字符串转化成字符数组,然后进行加密,最后把加密过的输出。
二、String.equals()方法的实现代码
System.out.println(a.equals(b));这是实例判断相等,主要是判断内容相等。
三、课后作业之字串加密、动手动脑之String.equals()方法、整理String类的Length()、charAt()、 getChars()、replace()、 toUpperCase()、 toLowerCase()、trim()、toCharArray()使用说明。
String.equals():
作用:比较两个字符串内容是否相同 System.out.println(a.equals(b));
Length():
获取字串长度,字符串是一个对象,在这个对象中包含length属性,它是该字符串的长度,使用String类中的length()方法可以获取该属性值。
CharAt():
str1.charAt(index);返回字符串str1中下标为index的字符,下标从0开始计数
getChars():
getChar是一个函数输入,使用的时候无需格式说明,可直接调,调用格式为z=getChar();,这条语句表示等待用户从键盘输入一个字符,并赋给变量.
replace():
子串替换,通过String类的replace()方法,可以将原字符串中的某个字符替换为指定的字符,并得到一个新的字符串
toUpperCase()、 toLowerCase():
返回一个新字符,它拥有与字符串str1相同的字符,但是把所有的小写字母都转换成了大写, 返回一个新字符,它拥有与字符串str1相同的字符,但是把所有的大写字母都转换成了小写。
trim():
去除头尾空格,通过String类的trim()方法,可以通过去掉字符串的首尾空格得到一个新的字符串。
toCharArray():
将字符串对象转换为字符数组。
以上是关于用java 编写一个凯撒加密和解密的主要内容,如果未能解决你的问题,请参考以下文章