Habe folgendes Problem, ich möchte Daten verschlüsseln mit Hilfe von PrivateKeys und PublicKeys.Laut diversen Beispielseiten, soll das so gehen:
import java.security.*;
import java.util.*;
import javax.crypto.*;
import javax.crypto.spec.*;
import javax.crypto.SecretKeyFactory;
import java.security.spec.*;
public class CryptObject {
private SecretKey key;
private KeyGenerator kg;
private Cipher cipher;
private PublicKey publicKey = null;
private PrivateKey privateKey = null;
/** encrypting text */
public String encrypt(String text){
try
{
this.cipher.init(Cipher.ENCRYPT_MODE,this.publicKey);
byte[] ciphertext = this.cipher.doFinal(text.getBytes());
return new String(ciphertext);
} catch (Exception x) {
System.out.println(„Methode: encrypt\nHier gehen ganz, ganz andere Dinge vor\n“+x.toString());
return null;
}
}
/** encrypting text */
public String decrypt(String text){
try
{
this.cipher.init(Cipher.DECRYPT_MODE,this.privateKey);
byte[] decryptedMessage = this.cipher.doFinal(text.getBytes());
return new String(decryptedMessage);
} catch (Exception x) {
System.out.println(„Methode: decrypt\nHier gehen ganz, ganz andere Dinge vor\n“+x.toString());
return null;
}
}
public CryptObject() {
try {
Provider sunJCE = new com.sun.crypto.provider.SunJCE ();
Security.addProvider (sunJCE);
KeyPairGenerator KeyGen = KeyPairGenerator.getInstance („DH“, „SunJCE“);
KeyGen.initialize(1024);
KeyPair keypair = KeyGen.genKeyPair();
this.privateKey = keypair.getPrivate();
this.publicKey = keypair.getPublic();
}catch (NoSuchAlgorithmException nsae) {System.out.println(„Methode: CryptObject\nDer Provider kann diesen Algorithmus nicht bereitstellen\n“+nsae.toString());
}catch (Exception x) {System.out.println(„Methode: CryptObject\nHier gehen ganz, ganz andere Dinge vor\n“+x.toString());}
String tmp1 = encrypt(„Hallo Welt“);
System.out.println(tmp1);
String tmp2 = decrypt(tmp1);
System.out.println(tmp2);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
new CryptObject();
}
}
Ich bekomme jedoch immer diesen Fehler:
Methode: encrypt
Hier gehen ganz, ganz andere Dinge vor
java.security.InvalidKeyException: Invalid key length: 425 bytes
null
Methode: decrypt
Hier gehen ganz, ganz andere Dinge vor
java.security.InvalidKeyException: Invalid key length: 427 bytes
null
Kann mir vielleicht jemand helfen?
Vielen Dank