我嘗試編碼此字節數組:的Java Base64編碼給出比C的base64編碼不同的結果
[237, 217, 204, 218, 109, 227, 157, 145, 35, 152, 85, 142, 182, 180, 120, 8]
使用Java庫org.apache.commons.codec.binary.Base64.encodeBase64
和org.bouncycastle.util.encoders.Base64.encode
這就是結果:
[55, 100, 110, 77, 50, 109, 51, 106, 110, 90, 69, 106, 109, 70, 87, 79, 116, 114, 82, 52, 67, 65, 61, 61]
(注意雙'='結尾處的填充字符)
使用base64.c Copyright (c) 1995-2001 Kungliga Tekniska Högskolan (Royal Institute of Technology, Stockholm, Sweden)
這是輸出:
[55, 100, 110, 77, 50, 109, 51, 106, 110, 90, 69, 106, 109, 70, 87, 79, 116, 114, 82, 52, 67, 66, 72, 114]
任何人都可以解釋爲什麼嗎?我怎樣才能讓Java/C庫以同樣的方式工作?
我會讀base64作爲文本,因爲這是使用它的要點;)看起來你在最後得到了不同的填充。你知道這是一個問題嗎? Base64不是一個明確的規格。 – 2014-10-09 10:19:11
注意:C代碼是13歲,也許有更新的版本。 – 2014-10-09 10:22:20