天天看點

java密碼之凱撒加密java-凱撒加密

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();
    }
}

           

繼續閱讀