首页 > 编程语言 > 详细

Java Base64加密与解密记录

时间:2019-11-24 21:57:56      阅读:82      评论:0      收藏:0      [点我收藏+]

【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流

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

Java Base64加密与解密记录

原文:https://www.cnblogs.com/xiwenxinaini/p/11924308.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!