Browse Source

Alle tests grün

featureCrypto
Christian Baltzer 6 years ago
parent
commit
1ce94fc8ba
  1. 41
      src/main/java/com/ugsbo/Crypto/Payload.java
  2. 42
      src/test/java/com/ugsbo/Crypto/Crypt.java
  3. 30
      src/test/java/com/ugsbo/Crypto/DeCrypt.java

41
src/main/java/com/ugsbo/Crypto/Payload.java

@ -15,11 +15,11 @@ public class Payload {
String offen;
String verschlüsselt;
SecretKeySpec password;
public Payload() {
offen = "";
verschlüsselt = "";
try {
this.setPassword("");
} catch (UnsupportedEncodingException e) {
@ -30,8 +30,8 @@ public class Payload {
e.printStackTrace();
}
}
public String getOffen() {
return offen;
}
@ -54,33 +54,34 @@ public class Payload {
public void setPassword(String password) throws GeneralSecurityException, UnsupportedEncodingException {
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");
// 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() throws NoSuchAlgorithmException, GeneralSecurityException {
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, password);
byte[] encrypted = cipher.doFinal(offen.getBytes());
verschlüsselt = Base64.getEncoder().encodeToString(encrypted);
}
public void entschlüsseln() throws NoSuchAlgorithmException, GeneralSecurityException {
byte[] text = Base64.getDecoder().decode(verschlüsselt);
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, password);
byte[] cipherData2 = cipher.doFinal(text);

42
src/test/java/com/ugsbo/Crypto/Crypt.java

@ -13,9 +13,9 @@ import org.junit.Test;
public class Crypt {
private Payload workingobjekt;
@Before
public void setUp() throws Exception {
workingobjekt = new Payload();
@ -23,33 +23,33 @@ public class Crypt {
@Test
public void offenIstAnders() {
String eingabe = "TestText";
String eingabe = "TestText";
String ergebnis;
String password = "";
try {
workingobjekt.setOffen(eingabe);
workingobjekt.setPassword(password);
workingobjekt.entschlüsseln();
} catch (GeneralSecurityException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
workingobjekt.setOffen(eingabe);
workingobjekt.setPassword(password);
workingobjekt.entschlüsseln();
} catch (GeneralSecurityException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
ergebnis = workingobjekt.getVerschlüsselt();
assertNotEquals("unterschidliche Texte",eingabe,ergebnis);
assertNotEquals("unterschidliche Texte", eingabe, ergebnis);
}
@Test
public void verUndEntschlüsseln() {
String password = "Test";
String eingabe = "TestText";
String ergebnis;
try {
workingobjekt.setOffen(eingabe);
workingobjekt.setPassword(password);
@ -59,8 +59,8 @@ public class Crypt {
e.printStackTrace();
}
ergebnis = workingobjekt.getOffen();
assertEquals("das entschlüsselte Test Wort",ergebnis,eingabe);
assertEquals("das entschlüsselte Test Wort", ergebnis, eingabe);
}
}

30
src/test/java/com/ugsbo/Crypto/DeCrypt.java

@ -10,7 +10,7 @@ import org.junit.Test;
public class DeCrypt {
private Payload workingobjekt;
@Before
public void setUp() throws Exception {
workingobjekt = new Payload();
@ -18,33 +18,33 @@ public class DeCrypt {
@Test
public void verschlüsseltIstAnders() {
String eingabe = "TestText";
String eingabe = "TestText";
String password = "Test";
String ergebnis;
try {
workingobjekt.setVerschlüsselt(eingabe);
workingobjekt.setPassword(password);
workingobjekt.setVerschlüsselt(eingabe);
workingobjekt.setPassword(password);
workingobjekt.entschlüsseln();
} catch (GeneralSecurityException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
ergebnis = workingobjekt.getOffen();
assertNotEquals("unterschidliche Texte",eingabe,ergebnis);
assertNotEquals("unterschidliche Texte", eingabe, ergebnis);
}
@Test
public void entUndVerschlüsseln() {
String password = "Test";
String eingabe = "TestText";
String ergebnis;
try {
workingobjekt.setOffen(eingabe);
workingobjekt.setPassword(password);
@ -53,10 +53,10 @@ public class DeCrypt {
} catch (GeneralSecurityException | UnsupportedEncodingException e) {
e.printStackTrace();
}
ergebnis = workingobjekt.getOffen();
assertEquals("das entschlüsselte Test Wort",ergebnis,eingabe);
assertEquals("das entschlüsselte Test Wort", ergebnis, eingabe);
}
}
Loading…
Cancel
Save