Java Base64加密與解密記錄


【Base64加密與解密記錄】

Base64多次加密和解密后不是初始消息問題:

import java.util.Base64;

class encod {
    private final static String SALT = "Tsy";    //添加鹽值,增加解密難度
    private final static int REPART = 5;       //設定加密次數,次數越多解密越難,但是會增加垃圾空間(原因是進行了字符串的修改)
    public static String encode(String msg) {
        String tsy = msg + "{" + SALT + "}";
        byte[] date = tsy.getBytes();
        for (int i = 0; i < REPART; i++) {
            date = Base64.getEncoder().encode(date);
        }
        return new String(date);
    }
    public static String decode(String msg) {
        byte[] date = msg.getBytes();
        for (int i = 0; i <REPART; i++) {
            date = Base64.getDecoder().decode(date);
        }
        return new String(date).replace("{Tsy}", "");
    }
}
public class T {
    public static void main(String[] args) {
        String msg1 = "Tsyscv";
        System.out.println(msg1.hashCode());
        String msg = encod.encode("www.mldn.cn");
        System.out.println(msg);
        System.out.println(encod.decode(msg));
    }
}

  使用Java.util中的Base64進行五次帶鹽值加密后,再進行解密,發現消息並不是我們原本發送的消息,原因是Base64.getDecoder().decode(byte[])和Base64.getDecoder().decode(Bytebuffer)倆個decode傳入的參數不一樣,只有使用decode傳入byte流

才可以進行多次加密和解密。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM