Benutzer-Werkzeuge

Webseiten-Werkzeuge


usercontent:verschluesseln_und_entschluesseln

Verschluesseln und Entschluesseln

Wie man Text verschlüsseln und entschlüsseln kann

/*
 * Wie eine Verschluesselung in Java machbar ist
 * Beispiel http://www.javacode.sought.de/
 * 
 */
package javaverschluesselung;
 
import java.security.MessageDigest;
import java.util.Arrays;
import java.util.Base64;
import javax.crypto.Cipher;
import javax.crypto.spec.SecretKeySpec;
import java.util.Base64.Encoder;
import java.util.Base64.Decoder;
 
 
 
/*
 * Wie eine Verschluesselung in Java machbar ist
 * Beispiel http://www.javacode.sought.de/
*/
 
public class JavaVerschluesselung {
 
    public static void main(String[] args) throws Exception {
 
        String text = "Das ist der zu verschlueselnde Text";
        String keyStr = "der geheime schluessel";
 
        // Zunächst brauchen wir einen Schlüssel um einen Key zu erzeugen
        byte[] key = (keyStr).getBytes("UTF-8");
        MessageDigest sha = MessageDigest.getInstance("MD5");
        key = sha.digest(key); //Hashwert bilden
        key = Arrays.copyOf(key, 16); //16 Bytes nutzen
        SecretKeySpec secretKeySpec = new SecretKeySpec(key, "AES"); //Schluessel anlegen
 
        // Verschluesseln
        Cipher cipher = Cipher.getInstance("AES");
        cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);
        byte[] encrypted = cipher.doFinal(text.getBytes());
 
        //Binär nach Text wandeln  
        Encoder encoder = Base64.getEncoder();
        String strverschluesselt = encoder.encodeToString(encrypted);
 
        System.out.println("Der codierte Text: " + strverschluesselt);
 
        // Entschlüsseln
        // Text wieder nach Binär wandeln
        Decoder decoder = Base64.getDecoder();
        byte[] crypted2 = decoder.decode(strverschluesselt);
 
        Cipher cipher2 = Cipher.getInstance("AES");
        cipher2.init(Cipher.DECRYPT_MODE, secretKeySpec);
        byte[] cipherData2 = cipher2.doFinal(crypted2);
        String strentschluesselt = new String(cipherData2);
 
        System.out.println("Der entschlüsselte Text: " + strentschluesselt);
 
    }
 
}

Ausgabe auf der Console:

run:
Der codierte Text: UjiLJFfjhMpgSoerboON2ROameQ69o94qSQu1iDrFch47mmRvIICI3/k1O5LAN7K
Der entschlüsselte Text: Das ist der zu verschlueselnde Text
BUILD SUCCESSFUL (total time: 0 seconds)

Beispiel getestet mit Version

ab Java 8

Autor

JavaEngel

Siehe auch

usercontent/verschluesseln_und_entschluesseln.txt · Zuletzt geändert: 16/10/2014 11:14 von 84.185.50.92