凯撒加密和解密
public class KaiserDemo {public static void main(String[] args) {String orignal = "Hello world";// 往右邊偏移三位int key = 3;// 選中我即將抽取的代碼,按快捷鍵Ctrl + Alt + M String encryptKaiser = encryptKaiser(orignal,key);System.out.println("加密:" + encryptKaiser);String decryptKaiser = decryptKaiser(encryptKaiser,key);System.out.println("解密:" + decryptKaiser);}/*** 使用凱撒加密方式解密數(shù)據(jù)** @param encryptedData :密文* @param key :密鑰* @return : 源數(shù)據(jù)*/public static String decryptKaiser(String encryptedData, int key) {// 將字符串轉(zhuǎn)為字符數(shù)組char[] chars = encryptedData.toCharArray();StringBuilder sb = new StringBuilder();for (char aChar : chars) {// 獲取字符的ASCII編碼int asciiCode = aChar;// 偏移數(shù)據(jù)asciiCode -= key;// 將偏移后的數(shù)據(jù)轉(zhuǎn)為字符char result = (char) asciiCode;// 拼接數(shù)據(jù)sb.append(result);}return sb.toString();}/*** 使用凱撒加密方式加密數(shù)據(jù)** @param orignal :原文* @param key :密鑰* @return :加密后的數(shù)據(jù)*/public static String encryptKaiser(String orignal, int key) {// 將字符串轉(zhuǎn)為字符數(shù)組char[] chars = orignal.toCharArray();StringBuilder sb = new StringBuilder();for (char aChar : chars) {// 獲取字符的ascii編碼int asciiCode = aChar;// 偏移數(shù)據(jù)asciiCode += key;// 將偏移后的數(shù)據(jù)轉(zhuǎn)為字符char result = (char) asciiCode;// 拼接數(shù)據(jù)sb.append(result);}return sb.toString();}
}
?
總結(jié)
- 上一篇: 外国加密
- 下一篇: byte和bit的关系