diff --git a/src/main/java/dao/UserDAO.java b/src/main/java/dao/UserDAO.java
index c8838f1714ee84da2dd82beaf6b96704ad16cd64..848264be4d60e7ad0361f80d0e1247b48219d37b 100644
--- a/src/main/java/dao/UserDAO.java
+++ b/src/main/java/dao/UserDAO.java
@@ -2,7 +2,9 @@ package dao;
 
 import data.User;
 
+import java.io.UnsupportedEncodingException;
 import java.nio.charset.StandardCharsets;
+import java.security.DigestException;
 import java.security.MessageDigest;
 import java.security.NoSuchAlgorithmException;
 import java.security.SecureRandom;
@@ -197,7 +199,24 @@ public class UserDAO {
      * @return hashedPassword, null if unsuccessful
      */
     public String hashPassword(String password, byte[] salt) {
-        return null;
+        MessageDigest md;
+        byte[] encodedHash;
+
+        try {
+            byte[] bytesOfPassword = password.getBytes(StandardCharsets.UTF_8);
+            md = MessageDigest.getInstance("SHA-512");
+            md.update(salt);
+            encodedHash = md.digest(bytesOfPassword);
+        } catch (NoSuchAlgorithmException e) {
+            throw new RuntimeException(e);
+        }
+
+        StringBuilder stringBuilder = new StringBuilder();
+        for (byte b : encodedHash) {
+            stringBuilder.append(Integer.toString((b & 0xff) + 0x100,
+                16).substring(1));
+        }
+        return stringBuilder.toString();
     }
 
     /**