→ ssccg: 不一樣是怎麼不一樣? 你的"abc"是先用什麼編碼再Base64的? 04/26 15:20
Android 加密
https://ideone.com/bZ5aO0
加密後
a8Kew5vCmsOTw5zCh8OjYiDCgMKbwo9YYGnCjMOMw659woB/w5XDjF0Awop6wrfDvnXCtQ==
php 加密
https://ideone.com/KCxKeF
加密後
a57bmtPch+NiIICbj1hgaYzM7n2Af9XMXQCKerf+dbU=
→ ssccg: java錯的,最快改法是hexTestStr.getBytes("ISO-8859-1") 04/26 16:01
→ ssccg: 但是根本原因是正確轉碼過程應該是 hex→byte[]→base64 04/26 16:02
→ ssccg: 你的hex2String是把byte資料硬塞進String裡(這相當於將byte 04/26 16:03
→ ssccg: 當做ISO-8859-1編碼的字串資料來轉成String 04/26 16:05
→ ssccg: 後來getBytes時會用系統預設編碼(應該是UTF-8)轉成byte 04/26 16:06
→ ssccg: hex→byte[] (ISO-8859-1)→String→UTF8 byte[]→base64 04/26 16:08
→ ssccg: 這是錯的,binary資料就不要再轉String了,把hex2String砍 04/26 16:08
→ ssccg: 掉換一個hex2Bytes才對 04/26 16:08
→ ssccg: 另外base64是編碼,不是加密 04/26 16:37
感謝,今天有解決此誤解,十分感恩
※ 編輯: magic704226 (220.141.171.7), 04/26/2018 23:42:34
→ y3k: 阿....抱歉看錯 上面請無視XD 04/27 10:16
→ kobe8112: 平常用BASE64主要的問題都是字串和陣列互相轉換時候的編 04/27 14:28
→ kobe8112: 碼格式不一致,BASE64本身是很單純的 04/27 14:29
→ ssccg: 我是覺得能表示成String的根本不用base64,base64不就方便 04/27 15:00
→ ssccg: 在用較單純的字元來表示binary資料而已 04/27 15:02