AES Entschlüsselung Fehler

Lucaaa

Bekanntes Mitglied
Hallo.
Ich habe eine Klasse die einen mit AES verschlüsselten Text wieder entschlüsselt. Die Verschlüsselung hat super funktioniert aber bei der Entschlüsselung bekomme ich immer einen Fehler:
Der Fehler:
Java:
at javax.crypto.Cipher.chooseProvider(Cipher.java:864)
 at javax.crypto.Cipher.init(Cipher.java:1396)
 at javax.crypto.Cipher.init(Cipher.java:1327)
 at HelloWorld.decrypt(HelloWorld.java:56)
 at HelloWorld.main(HelloWorld.java:22)

und der Code
Java:
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
import java.util.Arrays;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
import javax.xml.bind.DatatypeConverter;
public class HelloWorld {
  public static void main(String[] args) throws Exception {
 
   String text = "uMwZ3jWryoPp/tjnGV7bBwZQZoFLwBYaWni70Qi4kEw9TD+2J9S4/ILFDzn0VAAd4aNjTJD+guBIOl0TbUd3Bg==";
   String keyStr = "sehrgeheimerschlüssel";
   String dec = decrypt(text, keyStr);
   System.out.println("Decrypt:" + dec);
  }
  
 


public static String decrypt(String text, String keyStr)throws InvalidKeyException, IllegalBlockSizeException,BadPaddingException, UnsupportedEncodingException,NoSuchAlgorithmException, NoSuchPaddingException,InvalidAlgorithmParameterException{
 // Das Passwort bzw der Schluesseltext
 
 // byte-Array erzeugen
 byte[] key = (keyStr).getBytes("UTF-8");
 // aus dem Array einen Hash-Wert erzeugen mit MD5 oder SHA
 MessageDigest sha = MessageDigest.getInstance("SHA-256");
 key = sha.digest(key);
 // nur die ersten 128 bit nutzen
 key = Arrays.copyOf(key, 16); 
 // der fertige Schluessel
 SecretKeySpec skeySpec = new SecretKeySpec(key, "AES");

 
 
 
 
 
 byte[] encryptedData = DatatypeConverter.parseBase64Binary(text);
 Cipher cipher = Cipher.getInstance("AES");
 byte[] iv = Arrays.copyOfRange(encryptedData, 0, 16);
 byte[] cipherText = Arrays.copyOfRange(encryptedData, 16, encryptedData.length);
 IvParameterSpec iv_specs = new IvParameterSpec(iv);
 cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv_specs);
 byte[] plainTextBytes = cipher.doFinal(cipherText);
 String plainText = new String(plainTextBytes);
 return plainText;
 }
}
 

Neue Themen


Zurück
Oben