推 PsMonkey:這,我到底是該刪還是不該刪... [攤手] 04/18 22:38
→ cyclone350:server程式:instruction 是什麼? Object[] 嗎? 04/18 23:29
→ janice001:收到的字串 [0] 放id [1] 放加解密的字串>< 04/18 23:31
→ cyclone350:看不懂,你說你使用byteToHex,我整份程式碼沒看到這個 04/18 23:33
→ cyclone350:既然註明是 hexToByte(instruction[1]); 這行錯,你沒 04/18 23:35
→ cyclone350:放hexToByte程式,也沒說明instruction,我們要怎麼看? 04/18 23:38
不好意思 本來就是這行程式碼出錯 我也用byteToHex 還有hexToByte 互解過
所以我覺得是對的 所以沒PO
public static String bytesToHex(byte[] in) {
final StringBuilder builder = new StringBuilder();
for(byte b : in) {
builder.append(String.format("%02x", b));
}
return builder.toString();
}
public static byte[] hexToByte(String s) {
return new BigInteger(s, 16).toByteArray();
}
※ 編輯: janice001 (111.252.192.242), 04/18/2014 23:47:43
→ cyclone350:hexToByte ... 輸入的 s 長度必須為16的倍數 04/19 00:31
→ cyclone350:剛剛亂測一下api,應該是key長度問題? 04/19 00:34
→ janice001:那我應該怎麼作 直接補0 嗎? 為什麼在Android底下 04/19 00:34
→ cyclone350:說錯了,不是Key,是加密結果長度必須為16的倍數? 04/19 00:37
推 Killercat:? 拿Cipher的時候就有參數要你填padding規則了啊 04/19 00:38
→ cyclone350:你在Android code底下的temp就是32位元了吧?你不是把 04/19 00:42
→ cyclone350:temp傳到server解密嗎? 更正,是長度為32 04/19 00:44
→ cyclone350:為什麼要補0? AES密文長度不是16的倍數嗎? 04/19 00:47
→ janice001:可是不知道為什麼傳過去就不是了...? 04/19 00:50
→ janice001:我檢查一下客戶端送出的東西 跟伺服器接到的東西好了 04/19 00:52
謝謝 cyclone350 的意見
檢查 長度之後發現訊息長度被更改 後來發現 Hex byte 之間的轉換是有問題的
已經成功加解密來回了 謝謝 >v<
※ 編輯: janice001 (111.252.192.242), 04/19/2014 02:21:01