java-凱撒加密
package com.sgg.Kaiser;
public class KaiserDemo {
public static void main(String[] args) {
//定義原文
String input = "Hello World!";
//原文右移3位
int key = 3;
//抽取快捷鍵:ctrl alt m
String s = encryptKaiser(input,key);
System.out.println("加密 = " + s);
String s1 = decryptKaiser(s, key);
System.out.println("明文 = " + s1);
}
/**
*解密
* @param s 密文
* @param key 密鑰
* @return
*/
private static String decryptKaiser(String s, int key) {
char[] chars = s.toCharArray();
StringBuilder sb = new StringBuilder();
for (char aChar : chars) {
int b = aChar;
//偏移資料
b -= key;
char newb = (char) b;
sb.append(newb);
}
return sb.toString();
}
/**
* 解密
* @param input 原文
* @return
*/
private static String encryptKaiser(String input,int key) {
//把字元串變成位元組數組
char[] chars = input.toCharArray();
StringBuilder sb = new StringBuilder();
for (char aChar : chars) {
int b = aChar;
//往右移動3位
b = b + key;
char newb = (char) b;
sb.append(newb);
}
//System.out.println("密文==" + sb.toString());
return sb.toString();
}
}