diff --git a/src/main/java/dao/UserDAO.java b/src/main/java/dao/UserDAO.java
index 51fb7649feae5ad0eae5d9c915b3ad42325f00d9..e4f8cc1a9c7f48b04548499f48bdf4e637f2d6e5 100644
--- a/src/main/java/dao/UserDAO.java
+++ b/src/main/java/dao/UserDAO.java
@@ -183,7 +183,16 @@ public class UserDAO {
      * @return a random salt
      */
     public byte[] generateSalt() {
-        return null;
+        byte[] bytes = new byte[16];
+        try{
+        SecureRandom random = SecureRandom.getInstance("SHA1PRNG");
+
+        random.nextBytes(bytes);
+        }
+        catch (NoSuchAlgorithmException e){
+            e.printStackTrace();
+        }
+        return bytes;
     }
 
     /**
@@ -192,8 +201,26 @@ public class UserDAO {
      * @param salt salt to use when hashing
      * @return hashedPassword, null if unsuccessful
      */
-    public String hashPassword(String password, byte[] salt){
-        return null;
+    public String hashPassword(String password, byte[] salt) {
+
+        String hashedPassword = null;
+        try {
+            MessageDigest md = MessageDigest.getInstance("SHA-256"); //lager et objekt av messageDigest
+            //bruker alogritmen SHA-256 siden den er lenger, mer kompleks og dermed tryggere.
+            md.update(salt); //gjør passordet om til bytes.
+            byte[] bytes = md.digest(password.getBytes());
+
+            StringBuilder stringBuilder = new StringBuilder(); //lager et objekt av klassen stringbuilder
+            for (int i = 0; i < bytes.length; i++) { // gjør salt(bytes) om til string
+                stringBuilder.append(Integer.toString((bytes[i] & 0xff) + 0x100,
+                        16).substring(1));
+            }
+            hashedPassword = stringBuilder.toString();
+        }
+        catch (NoSuchAlgorithmException e){
+            e.printStackTrace();
+        }
+        return hashedPassword;
     }
 
     /**
@@ -203,7 +230,7 @@ public class UserDAO {
      * @param password password as String, if null it should not be updated
      * @return true if success on new username, false if not
      */
-    public boolean editUser (int userId, String username, String password) {
+    public boolean editUser (int userId, String username, String password){
         Connection connection = null;
         PreparedStatement preparedStatement = null;
         boolean updatePassword = false;
diff --git a/src/main/java/resources/UserResource.java b/src/main/java/resources/UserResource.java
index e406fae28f4258dcb9af22d6a05835977b006606..0d3e616a94ad97cf541c9c9d4a2fdeb75e498dae 100644
--- a/src/main/java/resources/UserResource.java
+++ b/src/main/java/resources/UserResource.java
@@ -5,6 +5,7 @@ import data.User;
 
 import javax.ws.rs.*;
 import javax.ws.rs.core.MediaType;
+import java.security.NoSuchAlgorithmException;
 import java.time.LocalDateTime;
 import java.util.Date;
 import java.util.List;
diff --git a/src/main/webapp/js/index.js b/src/main/webapp/js/index.js
index 87c0ac47e7274baae2a6f544d6cf3f1e7afe823b..cbd282de429191309469d27b00e22aba5d6cf879 100644
--- a/src/main/webapp/js/index.js
+++ b/src/main/webapp/js/index.js
@@ -44,6 +44,4 @@ function loadApplication(user) {
     sessionStorage.setItem("username", user.username);
     window.location.href = "../app.html"
 
-}ion.href = "../app.html"
-
 }
\ No newline at end of file
diff --git a/src/test/java/UserDAOTest.java b/src/test/java/UserDAOTest.java
index 9d8faca42c5c0fb99df8b9c46dfbb60495123161..ea85ca5b92647068bd4277966e9664b696ec7478 100644
--- a/src/test/java/UserDAOTest.java
+++ b/src/test/java/UserDAOTest.java
@@ -132,6 +132,7 @@ public class UserDAOTest extends JerseyTest {
         }
     }
 
+
     @After
     public void tearDown () {
         try {