Hallo!
Hab ein Programm das Text mit AES verschlüüselt. aber wenn ich das Ergebnis mit Online-Tools vergleiche, stimmt es nie überein. Hab ich vielleicht irgendwas falsch gemacht ?
Hab ein Programm das Text mit AES verschlüüselt. aber wenn ich das Ergebnis mit Online-Tools vergleiche, stimmt es nie überein. Hab ich vielleicht irgendwas falsch gemacht ?
Java:
// AES Ver- udn Entschlüsselung aus String
private static SecretKeySpec secretKey;
private static byte[] key;
// hashAlgo = "SHA-1"
// algo = "AES"
// sind weiter oben definiert.
public void setKey(String myKey) {
MessageDigest sha = null;
try {
key = myKey.getBytes("UTF-8");
sha = MessageDigest.getInstance(hashAlgo);
key = sha.digest(key);
key = Arrays.copyOf(key, 16);
secretKey = new SecretKeySpec(key, algo);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
}
public String encryptAES(String strToEncrypt, String secret) {
try {
setKey(secret);
Cipher cipher = Cipher.getInstance(algo);
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
return Base64.getEncoder().encodeToString(cipher.doFinal(strToEncrypt.getBytes("UTF-8")));
} catch (Exception e) {
System.out.println("Error while encrypting: " + e.toString());
}
return null;
}
public String decryptAES(String strToDecrypt, String secret) {
try {
setKey(secret);
Cipher cipher = Cipher.getInstance(algo);
cipher.init(Cipher.DECRYPT_MODE, secretKey);
return new String(cipher.doFinal(Base64.getDecoder().decode(strToDecrypt)));
} catch (Exception e) {
JOptionPane.showConfirmDialog(null, "Es ist ein Fehler aufgetreten. Dies kann mehrere Gründe haben. Entweder haben Sie ein falsches Passwort angegeben, oder es wurde eine andere Schlüssellänge bzw. ein anderer HASH-Algorhythmus wie beim verschlüsseln verwendet", "Fehler bei der Entschlüsselung", JOptionPane.DEFAULT_OPTION, JOptionPane.ERROR_MESSAGE);
}
return null;
}
Zuletzt bearbeitet von einem Moderator: