So erzeugen Sie den geheimen Schlüssel in Java einmal und verwenden Sie diesen Schlüssel in 2 verschiedenen Programmen

Mein Ziel ist es, schreiben Sie ein Java-Programm zum verschlüsseln einer Textdatei (cipher text) mit AES algorithm. Und dann schreiben Sie ein weiteres Programm zum entschlüsseln dieser verschlüsselten Datei ( cipher text ), um den Klartext zurück. Ich möchte mit dem gleichen Schlüssel (gleiche Schlüssel, generieren ein mal, speichern Sie es irgendwo, und verwenden Sie es in der ver-und Entschlüsselung-Programm) für die Verschlüsselung und Entschlüsselung Prozess. Wenn ich Schlüssel generieren und die Verschlüsselung und Entschlüsselung Zeile für Zeile in das gleiche Programm, dann funktioniert es tadellos. Hier ist der funktionierende code-snippet:

        String strDataToEncrypt = new String();
        String strCipherText = new String();
        String strDecryptedText = new String();

        KeyGenerator keyGen = KeyGenerator.getInstance("AES");
        keyGen.init(128);
        SecretKey secretKey = keyGen.generateKey();

        Cipher aesCipher = Cipher.getInstance("AES");
        aesCipher.init(Cipher.ENCRYPT_MODE,secretKey);

        strDataToEncrypt = "any text input";
        byte[] byteDataToEncrypt = strDataToEncrypt.getBytes();
        byte[] byteCipherText = aesCipher.doFinal(byteDataToEncrypt); 
        strCipherText = new BASE64Encoder().encode(byteCipherText);
        System.out.println("cipher text: " +strCipherText);
        aesCipher.init(Cipher.DECRYPT_MODE,secretKey,aesCipher.getParameters());
        byte[] byteDecryptedText = aesCipher.doFinal(new BASE64Decoder().decodeBuffer(strCipherText));
        strDecryptedText = new String(byteDecryptedText);
        System.out.println("plain text again: " +strDecryptedText);

Aber, ich brauche auch zwei verschiedene Programme (java-Dateien) für die Verschlüsselung und die Entschlüsselung. Also, ich habe irgendwie einen Schlüssel erzeugen und speichern Sie irgendwo. Dann verwenden Sie den gleichen Schlüssel für die Verschlüsselung und Entschlüsselung Programm. Wie kann ich das tun?

EDIT_1

KeyGenerator keyGen = KeyGenerator.getInstance("AES");
keyGen.init(128);
SecretKey secretKey = keyGen.generateKey();
byte[] encoded = secretKey.getEncoded(); 
System.out.println("key: "+encoded);//key: [B@52b2a2d8

Ich kann das codierte Schlüssel-Wert mit dem oben genannten Programm. Aber meine Frage ist, wie zu generieren der SecretKey mit diesem Wert in meiner Entschlüsselung Programm?

Sie generiert einen Schlüssel, was hält Sie vom schreiben es in eine Datei und Lesen Sie es in das zweite Programm?
schauen Sie bitte auf meinen edit.
Der Schlüssel ist ein byte[] für die das system verwendet Object#toString(), die nur schreibt sich die innere Identität. Sie müssen schreiben Sie die einzelnen byte Werte in eine Datei, vielleicht ist die Konvertierung in hex-ersten.

InformationsquelleAutor K M Rakibul Islam | 2013-11-27

Schreibe einen Kommentar