Verschlüsselung mit AES-256-Java

Ich habe diesen einfachen code, dass ich im internet gefunden.. im lernen dieses Zeug von der Verschlüsselung/Entschlüsselung.. dieser code scheint zu funktionieren, aber ich etwas nicht verstehe... warum nach dem "c.doFinal()" (das ist für die ver - /entschlüsseln (AES-256) dieser Kerl codieren/decodieren verschlüsselter Wert, mit BASE64? dessen nicht genug, nur durch die Verwendung von AES?

`private static final String ALGO = "AES";
 private static final byte[] keyValue = 
 new byte[] { 'T', 'h', 'e', 'B', 'e', 's', 't', 'S', 'e', 'c', 'r','e', 't', 'K', 'e', 'y' };


 public static String encrypt(String Data) throws Exception {
    Key key = generateKey();
    Cipher c = Cipher.getInstance("AES");
    c.init(Cipher.ENCRYPT_MODE, key);
    byte[] encVal = c.doFinal(Data.getBytes());
    String encryptedValue = new BASE64Encoder().encode(encVal);
    return encryptedValue;
}

public static String decrypt(String encryptedData) throws Exception {
    Key key = generateKey();
    Cipher c = Cipher.getInstance(ALGO);
    c.init(Cipher.DECRYPT_MODE, key);
    byte[] decordedValue = new BASE64Decoder().decodeBuffer(encryptedData);
    byte[] decValue = c.doFinal(decordedValue);
    String decryptedValue = new String(decValue);
    return decryptedValue;
}
private static Key generateKey() throws Exception {
    Key key = new SecretKeySpec(keyValue, ALGO);
    return key;
}

public static void main(String[] args) throws Exception {

    String data = "SOME TEXT";
    String dataEnc = AES.encrypt(data);
    String dataDec = AES.decrypt(dataEnc);

    System.out.println("Plain Text : " + data);
    System.out.println("Encrypted Text : " + dataEnc);
    System.out.println("Decrypted Text : " + dataDec);
}`

Dank!!

  • Dies ist eigentlich mit einer 128-bit-AES, nicht 256. Der Schlüssel 16 Byte, die 16 bytes * 8 bits pro byte = 128-bit-Schlüssel.
Schreibe einen Kommentar