測試時,並沒有測出該問題,到了生產環境才出現這個問題。
經過排查,主要是由於測試時,都是jdk8 的Base64 統一編碼,解碼;而生產環境是,不同的Base64編碼,jdk8 Base64解碼,這就會出現問題!
因為在jdk7中,Base64編碼包含換行,而在jdk8中,不包含換行,解碼就會出錯。
解決辦法:
1.使用apache common包中的org.apache.commons.codec.binary.Base64類進行編碼和解碼;
2.編碼和解碼使用統一jdk版本;
3.編碼之后或解碼之前去除換行符;
推薦第一種,簡單粗暴。
