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);
}
真是醉了…