Skip to content
Snippets Groups Projects
Commit 414d0644 authored by Martin Dolmen Helmersen's avatar Martin Dolmen Helmersen
Browse files

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	src/main/java/resources/CalculatorResource.java
parents 26603b74 01ffdedb
No related branches found
No related tags found
No related merge requests found
...@@ -18,7 +18,7 @@ public class Database { ...@@ -18,7 +18,7 @@ public class Database {
private static boolean isTest = isJUnitTest(); private static boolean isTest = isJUnitTest();
private static final String IP_TO_VM = "129.241.96.191"; private static final String IP_TO_VM = "129.241.97.157";
private static String DB_URL = "jdbc:mysql://" + ((DB_CHOICE != null) ? private static String DB_URL = "jdbc:mysql://" + ((DB_CHOICE != null) ?
(DB_CHOICE + ":3306/") : (DB_CHOICE + ":3306/") :
......
...@@ -8,6 +8,8 @@ import java.security.SecureRandom; ...@@ -8,6 +8,8 @@ import java.security.SecureRandom;
import java.sql.*; import java.sql.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.security.SecureRandom;
import java.security.MessageDigest;
import static dao.Database.close; import static dao.Database.close;
...@@ -183,7 +185,10 @@ public class UserDAO { ...@@ -183,7 +185,10 @@ public class UserDAO {
* @return a random salt * @return a random salt
*/ */
public byte[] generateSalt() { public byte[] generateSalt() {
return null; SecureRandom random = new SecureRandom();
byte bytes[] = new byte[16];
random.nextBytes(bytes);
return bytes;
} }
/** /**
...@@ -192,8 +197,26 @@ public class UserDAO { ...@@ -192,8 +197,26 @@ public class UserDAO {
* @param salt salt to use when hashing * @param salt salt to use when hashing
* @return hashedPassword, null if unsuccessful * @return hashedPassword, null if unsuccessful
*/ */
public String hashPassword(String password, byte[] salt){
return null; public String hashPassword(String password, byte[] salt) {
String generatedPassword="";
try {
MessageDigest md = MessageDigest.getInstance("SHA-256");
md.update(salt);
byte[] bytes = md.digest(password.getBytes());
StringBuilder sb = new StringBuilder();
for (byte b:bytes) {
sb.append(Integer.toString((b & 0xff) + 0x100,16).substring(1));
}
generatedPassword=sb.toString();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
return generatedPassword;
} }
/** /**
......
...@@ -49,4 +49,5 @@ public class User { ...@@ -49,4 +49,5 @@ public class User {
public void setSalt(byte[] salt) { public void setSalt(byte[] salt) {
this.salt = salt; this.salt = salt;
} }
} }
package resources; package resources;
<<<<<<< HEAD
import org.graalvm.compiler.hotspot.stubs.DivisionByZeroExceptionStub;
=======
>>>>>>> 2ffc5ca1cddf44a1e6d380f18eb4b10bb4578efb
import javax.ws.rs.Consumes; import javax.ws.rs.Consumes;
import javax.ws.rs.POST; import javax.ws.rs.POST;
......
...@@ -11,6 +11,7 @@ import org.junit.Test; ...@@ -11,6 +11,7 @@ import org.junit.Test;
import javax.ws.rs.core.Application; import javax.ws.rs.core.Application;
import java.sql.Connection; import java.sql.Connection;
import java.sql.SQLException; import java.sql.SQLException;
import java.sql.SQLOutput;
import java.sql.Statement; import java.sql.Statement;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
...@@ -194,4 +195,12 @@ public class UserDAOTest extends JerseyTest { ...@@ -194,4 +195,12 @@ public class UserDAOTest extends JerseyTest {
assertEquals(expectedUsername,actualUsername); assertEquals(expectedUsername,actualUsername);
assertNotEquals(beforeNewUser,afterNewUser); assertNotEquals(beforeNewUser,afterNewUser);
} }
@Test
public void testHashPassword(){
byte[] salt = userDAO.generateSalt();
System.out.println(salt);
assertEquals(userDAO.hashPassword("Hello World", salt),userDAO.hashPassword("Hello World", salt));
assertNotEquals(userDAO.hashPassword("Hello World", salt), userDAO.hashPassword("Yo", salt));
}
} }
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment