From 5637d8e53fad9f62f079a4dece0d970e3ae9163a Mon Sep 17 00:00:00 2001 From: Christian Baltzer Date: Sat, 13 Jul 2019 17:28:39 +0200 Subject: [PATCH] Password wird generiert --- src/main/java/com/ugsbo/Crypto/Payload.java | 41 +++++++++++++++------ 1 file changed, 29 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/ugsbo/Crypto/Payload.java b/src/main/java/com/ugsbo/Crypto/Payload.java index ebc4fd2..80638a1 100644 --- a/src/main/java/com/ugsbo/Crypto/Payload.java +++ b/src/main/java/com/ugsbo/Crypto/Payload.java @@ -1,17 +1,32 @@ 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; - String password; + SecretKeySpec password; public Payload() { offen = ""; verschlüsselt = ""; - password = ""; + + try { + this.setPassword(""); + } catch (UnsupportedEncodingException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } catch (GeneralSecurityException e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } } @@ -25,14 +40,6 @@ public class Payload { return verschlüsselt; } - - - public String getPassword() { - return password; - } - - - public void setOffen(String offen) { this.offen = offen; } @@ -45,8 +52,18 @@ public class Payload { - public void setPassword(String password) { - this.password = password; + 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"); }