我使用apache庫編碼爲base64。但是這次問題很典型。我有一個b64編碼的字符串。base64編碼問題,java
MIIHSjCCBjKgAwIBAgIQQuw1emUfNRlPD/euDuzBjDANBgkqhkiG9w0BAQUFADCB"+
"5TELMAkGA1UEBhMCRVMxIDAeBgkqhkiG9w0BCQEWEWFjQGFjYWJvZ2FjaWEub3Jn
其認證證書(.CER)文件的一部分。我只是解碼它,並再次編碼它,但結果有點不同。結果字符串是,
「MIIHSjCCBjKgAwIBAgIQQuw1emUfNRlPD/euDuzBjDANBgkqhkiG9w0BAQUFADA」 +「/ 5TELMAkGA1UEBhMCRVMxIDAeBgkqhkiG9w0BCQEWEWFjQGFjYWJvZ2FjaWEub3Jn」
所不同的是在第二行的第一行和起動結束。 CB被替換爲A/。
此更改使我的證書無效。問題出在哪裏?
如果添加用於編碼/解碼字符串的代碼,說起來會容易得多。 – zvez
首先它似乎是與UTF-8相關的問題。爲此,我嘗試以UTF-8讀取此字符串,並以UTF-8的方式將其提供給Base64.encodeBase64()方法。但結果是完全不同的。 –
'String partOfCer =「MIIHSjCCBjKgAwIBAgIQQuw1emUfNRlPD/euDuzBjDANBgkqhkiG9w0BAQUFADCB」+ 「5TELMAkGA1UEBhMCRVMxIDAeBgkqhkiG9w0BCQEWEWFjQGFjYWJvZ2FjaWEub3Jn」; byte [] dec1_byte = Base64.decodeBase64(partOfCer); String dec1 = new String(dec1_byte); Base64.encodeBase64String(dec1.getBytes()));' –