내 안드로이드 응용 프로그램에 문제가 있습니다. 내가 응용 프로그램에 RSA 암호화/해독과 관련된 노력하고있어. 이건 내 문제입니다 :ArrayIndexOutOfBoundsException : RSA 블록에 대한 데이터가 너무 많습니다.
짧은 문장을 명확하게 암호화 할 수 있지만이 메시지를 원본 텍스트로 해독하면 오류가 발생합니다 ("너무 많은 데이터를 RSA 블록 "). 그리고 또한 내가 긴 문장을 암호화하려면 내가 같은 error.I이 문제에 대한 몇 가지 검색을했고,이 사이트에 몇 가지 솔루션을 찾을 수 있습니다
을 하지만 난 이해가 안 돼,이 솔루션은 너무 복잡해. 어떻게이 문제를 해결할 수 있니? 누가 나에게 좀 더 간단한 해결책을 줄 수 있니? 고맙습니다.
EDİT : 다음은이 프로젝트에서 사용하는 코드 블록입니다.
public String RSAEncrypt(String plain) throws NoSuchAlgorithmException, NoSuchPaddingException,InvalidKeyException, IllegalBlockSizeException, BadPaddingException, InvalidKeySpecException, UnsupportedEncodingException {
publicKey = getPublicKey();
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
byte[] cipherData = cipher.doFinal(plain.getBytes());
return Base64.encodeToString(cipherData, Base64.DEFAULT);
}
public String RSADecrypt(byte[] encryptedBytes) throws NoSuchAlgorithmException, NoSuchPaddingException,InvalidKeyException, IllegalBlockSizeException, BadPaddingException, InvalidKeySpecException, UnsupportedEncodingException {
privateKey = getPrivateKey();
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.DECRYPT_MODE, privateKey);
byte[] cipherData = cipher.doFinal(encryptedBytes);
return Base64.encodeToString(cipherData, Base64.DEFAULT);
}
이 답변을 통해 도움을받을 수 있습니다. http://stackoverflow.com/a/16547038/2198638 – Brtle
Ok. 나는 내가 틀린 길에 있다는 것을 이해한다. 나는 cyrpto 방법을 바꿔야 해. 너의 도움에 감사드립니다. –
여러분을 환영합니다! – Brtle