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(); } /**