關於Base64工具類併發問題

2021-08-31 02:49:54 字數 1106 閱讀 6166

為減少物件建立次數,一般會做如下編碼:

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碼的控制字元就不能通過郵件傳送。這樣就受到了很大的限制,比如二進位製流的每...