Hallo,
ich möchte einen String mit RSA verschlüsseln. Diesen verschlüsselten String in eine Datei oder eine Datenbank schreiben und den privaten Schlüssel zum entschlüsseln ebenfalls.
Wie kann ich den Schlüssel abspeichern, damit ich ihn später wieder auslesen und wieder als Schlüssel verwenden kann?
Der Code ist der folgende:
// Provider bestimmen
Security.addProvider(new org.bouncycastle.jce.provider.
BouncyCastleProvider());
// Schluessel generieren:
KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA"); // (2)
keyPairGen.initialize(1024); //1024 maximale Schluesselbreite
KeyPair keyPair = keyPairGen.generateKeyPair(); // (3)
RSAPrivateKey privKey = (RSAPrivateKey) keyPair.getPrivate(); // (4)
RSAPublicKey pubKey = (RSAPublicKey) keyPair.getPublic();
//Verschluesseln
Cipher cipher = Cipher.getInstance("RSA"); // (5)
cipher.init(Cipher.ENCRYPT_MODE, pubKey); // (6)
byte[] plain = "MyString".getBytes(); //Testtext
byte[] chiffr = cipher.doFinal(plain); // (7)
//Entschluesseln
cipher.init(Cipher.DECRYPT_MODE, privKey); // (8)
System.out.write(cipher.doFinal(chiffr)); // (9)
Das klappt auch soweit, wie den Schlüssel speichern?
Gruß
SIMON
ich möchte einen String mit RSA verschlüsseln. Diesen verschlüsselten String in eine Datei oder eine Datenbank schreiben und den privaten Schlüssel zum entschlüsseln ebenfalls.
Wie kann ich den Schlüssel abspeichern, damit ich ihn später wieder auslesen und wieder als Schlüssel verwenden kann?
Der Code ist der folgende:
// Provider bestimmen
Security.addProvider(new org.bouncycastle.jce.provider.
BouncyCastleProvider());
// Schluessel generieren:
KeyPairGenerator keyPairGen = KeyPairGenerator.getInstance("RSA"); // (2)
keyPairGen.initialize(1024); //1024 maximale Schluesselbreite
KeyPair keyPair = keyPairGen.generateKeyPair(); // (3)
RSAPrivateKey privKey = (RSAPrivateKey) keyPair.getPrivate(); // (4)
RSAPublicKey pubKey = (RSAPublicKey) keyPair.getPublic();
//Verschluesseln
Cipher cipher = Cipher.getInstance("RSA"); // (5)
cipher.init(Cipher.ENCRYPT_MODE, pubKey); // (6)
byte[] plain = "MyString".getBytes(); //Testtext
byte[] chiffr = cipher.doFinal(plain); // (7)
//Entschluesseln
cipher.init(Cipher.DECRYPT_MODE, privKey); // (8)
System.out.write(cipher.doFinal(chiffr)); // (9)
Das klappt auch soweit, wie den Schlüssel speichern?
Gruß
SIMON