Ultra Geile Studenten Benutzer Oberfläche (UGSBO)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

90 lines
2.1 KiB

  1. package com.ugsbo.Crypto;
  2. import java.io.UnsupportedEncodingException;
  3. import java.security.GeneralSecurityException;
  4. import java.security.MessageDigest;
  5. import java.security.NoSuchAlgorithmException;
  6. import java.util.Arrays;
  7. import javax.crypto.*;
  8. import javax.crypto.spec.SecretKeySpec;
  9. public class Payload {
  10. String offen;
  11. String verschlüsselt;
  12. SecretKeySpec password;
  13. public Payload() {
  14. offen = "";
  15. verschlüsselt = "";
  16. try {
  17. this.setPassword("");
  18. } catch (UnsupportedEncodingException e) {
  19. // TODO Auto-generated catch block
  20. e.printStackTrace();
  21. } catch (GeneralSecurityException e) {
  22. // TODO Auto-generated catch block
  23. e.printStackTrace();
  24. }
  25. }
  26. public String getOffen() {
  27. return offen;
  28. }
  29. public String getVerschlüsselt() {
  30. return verschlüsselt;
  31. }
  32. public void setOffen(String offen) {
  33. this.offen = offen;
  34. }
  35. public void setVerschlüsselt(String verschlüsselt) {
  36. this.verschlüsselt = verschlüsselt;
  37. }
  38. public void setPassword(String password) throws GeneralSecurityException, UnsupportedEncodingException {
  39. byte[] key = (password).getBytes("UTF-8");
  40. // aus dem Array einen Hash-Wert erzeugen mit MD5 oder SHA
  41. MessageDigest sha = MessageDigest.getInstance("SHA-256");
  42. key = sha.digest(key);
  43. // nur die ersten 128 bit nutzen
  44. key = Arrays.copyOf(key, 16);
  45. // der fertige Schluessel
  46. this.password = new SecretKeySpec(key, "AES");
  47. }
  48. public void verschlüsseln() throws NoSuchAlgorithmException, GeneralSecurityException {
  49. Cipher cipher = Cipher.getInstance("AES");
  50. cipher.init(Cipher.ENCRYPT_MODE, password);
  51. byte[] encrypted = cipher.doFinal(offen.getBytes());
  52. verschlüsselt = encrypted.toString();
  53. }
  54. public void entschlüsseln() throws NoSuchAlgorithmException, GeneralSecurityException {
  55. byte[] text = verschlüsselt.getBytes();
  56. Cipher cipher2 = Cipher.getInstance("AES");
  57. cipher2.init(Cipher.DECRYPT_MODE, password);
  58. byte[] cipherData2 = cipher2.doFinal(text);
  59. offen = new String(cipherData2);
  60. }
  61. }