Hi,
ich experimentiere gerade mit Cipher herum, aber es will nicht so recht klappen.
Grundgedanke ist folgender: Ich möchte Objekte vom Client zum Server schicken. Das klappt soweit. Nun sollen diese Objekte verschlüsselt werden.
Also habe ich mir folgende Methode für die Verschlüsselung gebaut:
Aber die doFinal wirft nun die Exception:
Meinen Key generiere ich wiefolgt:
Ich bin nicht so fit in Verschlüsselung, deshalb komme ich mit der Exception nicht so klar. Heißt die Fehlermeldung jetzt, dass ich nur Nachrichten der Länge 117 bytes verschlüsseln kann? Idee wäre dann, das Objekt in ein Byte-Array umzuwandeln, dieses splitten, verschlüsseln, senden, entschlüsseln, zusammensetzen. Aber da gibt es bestimmt einen eleganteren Weg?
Grüße,
Sebastian
ich experimentiere gerade mit Cipher herum, aber es will nicht so recht klappen.
Grundgedanke ist folgender: Ich möchte Objekte vom Client zum Server schicken. Das klappt soweit. Nun sollen diese Objekte verschlüsselt werden.
Also habe ich mir folgende Methode für die Verschlüsselung gebaut:
Code:
private byte[] encrpyt(byte[] byteArray, PublicKey publicKey) throws NoSuchAlgorithmException, NoSuchPaddingException, InvalidKeyException, IllegalBlockSizeException, BadPaddingException{
Cipher cipher = Cipher.getInstance(Config.TRANSFORMATION);
cipher.init(Cipher.ENCRYPT_MODE, publicKey);
return cipher.doFinal(byteArray);
}
Aber die doFinal wirft nun die Exception:
javax.crypto.IllegalBlockSizeException: Data must not be longer than 117 bytes
Meinen Key generiere ich wiefolgt:
Code:
try {
keyPairGen = KeyPairGenerator.getInstance(Config.ALGORITHM);
keyPairGen.initialize(Config.KEY_SIZE);
KeyPair keyPair = keyPairGen.generateKeyPair();
this.privateKey = keyPair.getPrivate();
this.publicKey = keyPair.getPublic();
} catch (NoSuchAlgorithmException e) {
System.out.println(e); // TODO Handle exception
}
Ich bin nicht so fit in Verschlüsselung, deshalb komme ich mit der Exception nicht so klar. Heißt die Fehlermeldung jetzt, dass ich nur Nachrichten der Länge 117 bytes verschlüsseln kann? Idee wäre dann, das Objekt in ein Byte-Array umzuwandeln, dieses splitten, verschlüsseln, senden, entschlüsseln, zusammensetzen. Aber da gibt es bestimmt einen eleganteren Weg?
Grüße,
Sebastian