我正在嘗試解密字符串 "kads#)9kl11as33!@#d" 我從后端服務(wù)器收到的字符串,該服務(wù)器使用 OpenSSL 使用 AES-256-CBC 加密字符串。有代碼塊:
public static String decryptText(String textToDecrypt) { try { byte[] base64TextToDecrypt = Base64.encodeBase64(textToDecrypt.getBytes("UTF-8")); byte[] guid = "fjakdsjkld;asfj".getBytes("UTF-8"); byte[] iv = new byte[16]; System.arraycopy(guid, 0, iv, 0, guid.length); IvParameterSpec ips = new IvParameterSpec(iv); byte[] secret = DECRYPTION_SECRET_HASH.getBytes("UTF-8"); SecretKeySpec secretKey = new SecretKeySpec(secret, "AES"); Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); // decryption pass cipher.init(Cipher.DECRYPT_MODE, secretKey, ips); byte[] converted = cipher.doFinal(base64TextToDecrypt); System.out.println(new String(converted)); } catch (Exception e) { e.printStackTrace(); Log.e(TAG, "Decipher error for " + textToDecrypt, e); } return ""; }
不幸的是,當(dāng)我到達(dá)
byte[] converted = cipher.doFinal(base64TextToDecrypt);
語句拋出以下異常:
javax.crypto.IllegalBlockSizeException: last block incomplete in decryption
有任何想法嗎?
本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場(chǎng)。
轉(zhuǎn)載請(qǐng)注明,如有侵權(quán),聯(lián)系刪除。