Hallo,
ich sitze hier gerade an meinem Programm, was RSA ver- und entschlüsseln können soll. Die Verschlüsselungsmethode sieht bisher so aus:
So wie ich das Beispielprogramm verstanden habe, macht das SealedObject die Verschlüsselung und danach kann man dann auch wieder eine Entschlüsselung durchführen (funktioniert auch soweit).
Meine Problem ist jetzt aber: Da ich einen verschlüsselten String zugeschickt bekomme, kann ich nicht anfangen zu verschlüsseln, sondern muss diesen ja logischerweise entschlüsseln.
Frage ist: Wie mache ich das genau?
ich sitze hier gerade an meinem Programm, was RSA ver- und entschlüsseln können soll. Die Verschlüsselungsmethode sieht bisher so aus:
Java:
public static String encrypt(String to_encrypt) {
// Get an instance of the RSA key generator
KeyPairGenerator kpg;
try {
KeyFactory keyFactory = KeyFactory.getInstance("RSA");
RSAPrivateKeySpec privKeySpec = new RSAPrivateKeySpec(new BigInteger("geheim1"), new BigInteger("geheim2"));
RSAPublicKeySpec pubKeySpec = new RSAPublicKeySpec(new BigInteger("geheim1"), new BigInteger("geheim3"));
RSAPublicKey pubKey = (RSAPublicKey) keyFactory.generatePublic(pubKeySpec);
RSAPrivateKey privKey = (RSAPrivateKey) keyFactory.generatePrivate(privKeySpec);
Cipher cipher = Cipher.getInstance("RSA");
cipher.init(Cipher.ENCRYPT_MODE, pubKey);
// Encrypt that message using a new SealedObject and the Cipher we created before
SealedObject myEncyptedMessage = new SealedObject(to_encrypt, cipher);
Cipher decCipher = Cipher.getInstance("RSA");
decCipher.init(Cipher.DECRYPT_MODE, privKey);
// Tell the SealedObject we created before to decrypt the data and return it
String message = (String)myEncyptedMessage.getObject(decCipher);
System.out.println("foo = "+myEncyptedMessage.toString());
return message;
} catch (NoSuchAlgorithmException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (NoSuchPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidKeyException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (BadPaddingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InvalidKeySpecException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return "";
}
So wie ich das Beispielprogramm verstanden habe, macht das SealedObject die Verschlüsselung und danach kann man dann auch wieder eine Entschlüsselung durchführen (funktioniert auch soweit).
Meine Problem ist jetzt aber: Da ich einen verschlüsselten String zugeschickt bekomme, kann ich nicht anfangen zu verschlüsseln, sondern muss diesen ja logischerweise entschlüsseln.
Frage ist: Wie mache ich das genau?