天天看點

base64加密解密問題base64加密

base64加密

樓主在對接硬體裝置的時候,裝置傳參是用base64加密的,是以需要解密,但是沒有裝置,是以需要用postman模拟裝置傳參,結果在加密解密的過程中出現了很睿智的一幕…

加密的時候是在網站上加密的,沒錯就是百度-,-參數拿到了,用代碼解密,如下

private String base64Decoder(ZhuoWenParamsModel zhuoWenParamsModel) throws IOException {
        if (zhuoWenParamsModel == null) return null;
        /*解析資料*/
        String contentBase64 = zhuoWenParamsModel.getContent();
        Base64 base64 = new Base64();
        byte[] decode = base64.decode(contentBase64);
        return new String(decode, "utf-8");
    }
           

列印一下傳回結果,出現了這麼個玩意

%7B%0A%09%22autoid%22%3A%201%2C%0A%09%22mac%22%3A%20%22187ED53162E0%22%2C%0A%09%22datetime%22%3A%20%222019-11-12%2012%3A00%3A00%22%2C%0A%09%22title%22%3A%20%22%u7EBF%u8DEF1%22%2C%0A%09%22addr%22%3A%20%221%22%2C%0A%09%22type%22%3A%20%22%u544A%u8B66%22%2C%0A%09%22info%22%3A%20%22%u6D4B%u8BD5%u62A5%u8B66%22%2C%0A%09%22is_del%22%3A%20%22Y%22%2C%0A%09%22is_sync%22%3A%20%22Y%22%2C%0A%09%22alarm_number%22%3A%201%0

搞了兩個小時各種編碼轉來轉去,最後問了下前輩,可能是網站的加密方式和代碼的解密方式不一樣,用代碼加密再用代碼解密就OK了…

加密代碼

@Test
    public void encode(){
        String str="31231sfdfrqw3r23ewrqwr23";
        byte[] bytes=str.getBytes();
        String base64keyString =new BASE64Encoder().encodeBuffer(bytes);
        System.out.println(base64keyString);
    }
           

真是醉了…