diff --git a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Utilities/CryptoUtils.java b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Utilities/CryptoUtils.java
index e2e1cab636cd7d2e34bd843862754056d2c0d8c7..757543af9f7227b44495bed77f991b06ca34716a 100644
--- a/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Utilities/CryptoUtils.java
+++ b/src/main/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Utilities/CryptoUtils.java
@@ -15,9 +15,6 @@ import javax.crypto.NoSuchPaddingException;
 import javax.crypto.spec.SecretKeySpec;
 
 import java.nio.charset.StandardCharsets;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
 
 
 public class CryptoUtils{
@@ -27,15 +24,26 @@ public class CryptoUtils{
     private static String key = "Peters Olivenöl";
     private static String  encrypted_as_word = "encrypted;";
     private static boolean alreadyencrypted = false;
+    private static boolean multipleencryptions = false;
+    private static int encryptionreturn;
+
     private static final Logger log = LogManager.getLogger(CryptoUtils.class);
 
 
-    public static void encrypt(File inputFile) throws CryptoException {
-        alreadyencrypted = check_if_file_already_encrypted(inputFile);        //Yet to implement
-        if(alreadyencrypted == false){
+    public static int encrypt(File inputFile,  boolean multipleencryptions) throws CryptoException {
+        alreadyencrypted = check_if_file_already_encrypted(inputFile);
+        if(multipleencryptions){
+            doCrypto(Cipher.ENCRYPT_MODE, key, inputFile);
+            log.info("This File can be encrypted multiple times");
+            return encryptionreturn = 0;
+        }
+        else if(!alreadyencrypted && !multipleencryptions){
             doCrypto(Cipher.ENCRYPT_MODE, key, inputFile);
+            log.info("This File can only be encryptet once and this is now!");
+            return encryptionreturn = 1;
         }else {
             log.info("This file is already encrypted and doesnt need to be encrypted anymore! " + inputFile);
+            return encryptionreturn = 2;
         }
     }
 
@@ -64,6 +72,7 @@ public class CryptoUtils{
                     FileOutputStream outputStream = new FileOutputStream(inputFile);
                     outputStream.write(outputBytes);//outputBytes
                     outputStream.close();
+                    multipleencryptions = true;
                 }
             inputStream.close();
 
diff --git a/src/test/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Utilities/CryptoUtilsTest.java b/src/test/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Utilities/CryptoUtilsTest.java
index 37ac39691c2aff354a0714693b4ea2f0c00b059a..07c8adf7ca568c13e88a38a9c7eca377c64398e2 100644
--- a/src/test/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Utilities/CryptoUtilsTest.java
+++ b/src/test/java/de/hdm_stuttgart/battlearena/Model/DataStorage/Classes/Utilities/CryptoUtilsTest.java
@@ -3,7 +3,9 @@ package de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Utilities;
 //import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Exceptions.CryptoException;
 
 import de.hdm_stuttgart.battlearena.Model.DataStorage.Classes.Exceptions.CryptoException;
-import org.junit.jupiter.api.Test;
+import org.apache.logging.log4j.LogManager;
+import org.apache.logging.log4j.Logger;
+import org.junit.jupiter.api.*;
 
 import java.io.*;
 
@@ -13,18 +15,31 @@ public class CryptoUtilsTest {
     private static File encryptiondecryptiontestFile = new File("src\\main\\resources\\database\\encryptiondecryptiontestFile.txt");
     private static File encryptedtestFile = new File("src\\main\\resources\\database\\encrypted;encryptedtestFile.txt");
     private static boolean alreadyencrypted;
+    private static int encryptionreturn;
+    private static String text="";
+    private static String[] parts;
+    private static String testtext = "Hier steht ein Testtext.";
+    private static boolean multipleencryptions = false;
+    private static final Logger log = LogManager.getLogger(CryptoUtilsTest.class);
 
-    @Test
-    void encrypt_decryptiontest() throws IOException {
-        String text="";
-        String[] parts;
-        String testtext = "Hier steht ein Testtext.";
 
+    @BeforeEach
+    void beforeEachTest(TestInfo testInfo) {
+        log.info(() -> String.format("About to execute [%s]",
+                testInfo.getDisplayName()));
+    }
+    @AfterEach
+    void afterEachTest(TestInfo testInfo) {
+        log.info(() -> String.format("Finished executing [%s]",
+                testInfo.getDisplayName()));
+    }
+    @Test
+    void encryptDecryptiontest() throws IOException {
         BufferedWriter writer = new BufferedWriter(new FileWriter(encryptiondecryptiontestFile));
         writer.write(testtext);
         writer.close();
         try {
-            CryptoUtils.encrypt(encryptiondecryptiontestFile);
+            CryptoUtils.encrypt(encryptiondecryptiontestFile, true);
             parts = CryptoUtils.decrypt(encryptiondecryptiontestFile);
             text = parts[0];
             System.out.println(text);
@@ -34,18 +49,54 @@ public class CryptoUtilsTest {
         }
         assertEquals(testtext,text);
     }
+    @RepeatedTest(3)
+    void repeatedCheckFileEncryptingMultipleTimes() throws IOException {
+        BufferedWriter writer = new BufferedWriter(new FileWriter(encryptiondecryptiontestFile));
+        writer.write(testtext);
+        writer.close();
+        try {
+            encryptionreturn = CryptoUtils.encrypt(encryptiondecryptiontestFile, true);
+            parts = CryptoUtils.decrypt(encryptiondecryptiontestFile);
+            text = parts[0];
+            System.out.println(text);
+        } catch (CryptoException ex) {
+            System.out.println(ex.getMessage());
+            ex.printStackTrace();
+        }
+        assertEquals(encryptionreturn, 0);
+        assertEquals(testtext,text);            //Change
+    }
+    @Test
+    void checkFileEncryptingOnce() throws IOException {
+        BufferedWriter writer = new BufferedWriter(new FileWriter(encryptiondecryptiontestFile));
+        writer.write(testtext);
+        writer.close();
+        try {
+            encryptionreturn = CryptoUtils.encrypt(encryptiondecryptiontestFile, false);
+            parts = CryptoUtils.decrypt(encryptiondecryptiontestFile);
+            text = parts[0];
+            System.out.println(text);
+        } catch (CryptoException ex) {
+            System.out.println(ex.getMessage());
+            ex.printStackTrace();
+        }
+        assertEquals(encryptionreturn, 1);
+        assertEquals(testtext,text);        //Change
+    }
     @Test
-    void check_if_file_already_encrypted(){
+    void checkIfFileAlreadyEncrypted(){
         alreadyencrypted = CryptoUtils.check_if_file_already_encrypted(encryptedtestFile);
         assertTrue(alreadyencrypted);
     }
     @Test
-    void check_if_file_not_yet_encrypted(){
+    void checkIfFileNotYetEncrypted(){
         alreadyencrypted = CryptoUtils.check_if_file_already_encrypted(encryptiondecryptiontestFile);
         assertFalse(alreadyencrypted);
     }
     @Test
-    void checkCryptoexception(){
-        //
+    void exceptionTestingFileNotFound() {
+        CryptoException exception = assertThrows(CryptoException.class, () ->
+                CryptoUtils.decrypt(new File("src/main/resources/database/thisFileShouldn'tExist")));
+        assertEquals("Error encrypting/decrypting file", exception.getMessage());
     }
 }