信息安全概论
自定义密钥位数的恺撒密码加密和唯密文攻击解密算法
import java.util.Scanner;
/**
* 自定义密钥位数的恺撒密码加密和唯密文攻击解密算法,明文用小写表示,密文用大写表示。
* 输入1或者2选择所需执行的算法,1为加密算法,2为解密算法。
* 若为加密操作,输入大于0小于26的整数作为密钥的位数,若输入错误则会提醒密钥无效并终止程序。
* 输入密文或明文执行所需的解密或加密操作。
* @author Riyad
*/
public class Caesar
{
private int key;
private Scanner scan;
/**
* 加密算法,输入小写表示的明文,输出大写表示的密文
* @apiNote 将输入的字符串转化为字符数组,并在转化的同时利用ASCII表对字符进行加法移位操作并逐个输出。
* 在进行加法移位操作时,判断该字符是否为其他符号,若是,则无需进行移位。
* 并判断加法操作后是否超出26个小写字母的范围,若超出,则退回到ASCII表中的前26个位置。
*/
public void encrypt()
{
System.out.print("Please enter the key of Caesar Algorithm: ");
scan = new Scanner(System.in);
int temp = scan.nextInt();
if(temp > 0 && temp < 26) key = temp;
else
{
System.out.println("Invalid key!");
System.exit(0);
}
System.out.print("Please enter the plaintext: ")</