package com.ugsbo.Crypto; import java.io.UnsupportedEncodingException; import java.security.GeneralSecurityException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.util.Arrays; import javax.crypto.*; import javax.crypto.spec.SecretKeySpec; public class Payload { String offen; String verschlüsselt; SecretKeySpec password; public Payload() { offen = ""; verschlüsselt = ""; try { this.setPassword(""); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (GeneralSecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public String getOffen() { return offen; } public String getVerschlüsselt() { return verschlüsselt; } public void setOffen(String offen) { this.offen = offen; } public void setVerschlüsselt(String verschlüsselt) { this.verschlüsselt = verschlüsselt; } public void setPassword(String password) throws GeneralSecurityException, UnsupportedEncodingException { byte[] key = (password).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 this.password = new SecretKeySpec(key, "AES"); } public void verschlüsseln() { } public void entschlüsseln() { } }