為減少物件建立次數,一般會做如下編碼:
package com.***.frame.util;
import sun.misc.base64decoder;
import sun.misc.base64encoder;
public class base64util
return new string(decoder.decodebuffer(key));
}/**
* base64加密
* * @param key
* @return
* @throws exception
*/public static string encryptbase64(string key) throws exception
return new string(encoder.encodebuffer(key.getbytes()));}}
[color=red]此類看似沒問題,在高併發下,存在解密失敗的情況,無法還原出正確的原字串。正確的做法如下:
[/color]
/*** base64解密
* * @param key
* @return
* @throws exception
*/public static string decryptbase64(string key) throws exception
return new string(new base64decoder().decodebuffer(key));
}/**
* base64加密
* * @param key
* @return
* @throws exception
*/public static string encryptbase64(string key) throws exception
return new string(new base64encoder().encodebuffer(key.getbytes()));
}
具體細節待查。
關於base64編碼
今天和同事聊到在給前端傳輸 驗證碼的時候,涉及到了這個關於base64編碼的問題。可以通過編碼的格式來獲取 至於好處可以參考以下 string a 123412312sfwefwefwefw string b new string codecmanager.getcodecclient codecc...
關於Base64編碼 解碼
用數字證書簽名或者生成md5摘要結果都是byte陣列,為了方便對簽名結果放在xml中進行傳輸,一般先用base64進行編碼,生成一串可見的ascii字元。接收方收到後在用base64進行decoder生成byte陣列。可進行base64編碼 解碼處理的類有 org.apache.commons.co...
關於base64的學習
base64編碼原理分析 base64編碼 base64是網路上最常見的用於傳輸8bit位元組 的編碼方式之一。base64編碼的作用 因為有些網路傳送渠道並不支援所有的位元組,例如傳統的郵件只支援可見字元的傳送,像ascii碼的控制字元就不能通過郵件傳送。這樣就受到了很大的限制,比如二進位製流的每...