Kaisa加解密
public class Kaisa { /*** * 使用凯撒加密方式加密数据 * @param orignal 原文 * @param key 密钥 * @return 加密后的字符 */ private static String encryptKaisa(String orignal, int key) { //将字符串转换为数组 char[] chars = orignal.toCharArray(); StringBuffer buffer = new StringBuffer(); //遍历数组 for(char aChar : chars) { //获取字符的ASCII编码 int asciiCode = aChar; //偏移数据 asciiCode += key; //将偏移后的数据转为字符 char result = (char)asciiCode; //拼接数据 buffer.append(result); } return buffer.toString(); } /** * 使用凯撒加密方式解密数据 * * @param encryptedData :密文 * @param key :密钥 * @return : 源数据 */ private static String decryptKaiser(String encryptedData, int key) { // 将字符串转为字符数组 char[] chars = encryptedData.toCharArray(); StringBuilder sb = new StringBuilder(); // 遍历数组 for (char aChar : chars) { // 获取字符的ASCII编码 int asciiCode = aChar; // 偏移数据 asciiCode -= key; // 将偏移后的数据转为字符 char result = (char) asciiCode; // 拼接数据 sb.append(result); } return sb.toString(); } public static void main(String[] args) { String str = "open fire"; String encode = encryptKaisa(str, 3); System.out.println("加密后:"+encode); String decode = decryptKaiser(encode, 3); System.out.println("解密后:"+decode); } }