凯撒密码加密解密——Java代码(密码学)凯撒密码:
恺撒密码(英语:Caesar cipher),或称恺撒加密、恺撒变换、变换加密,是一种最简单且最广为人知的加密技术。它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。当年恺撒曾用此方法与其将军们进行联系而得此名。
代码描述:
package com.atguigu;
public class kaiserDemo {
public static void main(String[] args) {
//待加密的字符串
String input = "I LOVE you";
//向后位移位数
int key = 3;
String encrypted = encrypt(input, key);
System.out.println(encrypted);
String srcvalue = decrypt(encrypted,key);
System.out.println(srcvalue);
}
public static String decrypt(String encrypted, int key) {
//对密文进行解密,生成字符数组
char[] chars = encrypted.toCharArray();
StringBuilder sh = new StringBuilder();
for (char c : chars) {
int value= c;
//对输出值进行位移
int newvalue = value - key ;
char result = (char) newvalue;
sh.append(result);
}
return sh.toString();
}
public static String encrypt(String input, int key) {
//把字符串转为字符数
char[] chars = input.toCharArray();
StringBuilder sh = new StringBuilder();
//对输入值进行位移
for (char c : chars) {
int asciiCode = c;
asciiCode = asciiCode + key;
char newchar =(char)asciiCode;
sh.append(newchar);
}
return sh.toString();
//System.out.println(sh.toString());存在两种方法
}
}
解决方案:
希望对大家有帮助!!!



