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 {
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) ?
(DB_CHOICE + ":3306/") :
......
......@@ -8,6 +8,8 @@ import java.security.SecureRandom;
import java.sql.*;
import java.util.ArrayList;
import java.util.List;
import java.security.SecureRandom;
import java.security.MessageDigest;
import static dao.Database.close;
......@@ -183,7 +185,10 @@ public class UserDAO {
* @return a random salt
*/
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 {
* @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 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 {
public void setSalt(byte[] salt) {
this.salt = salt;
}
}
package resources;
<<<<<<< HEAD
import org.graalvm.compiler.hotspot.stubs.DivisionByZeroExceptionStub;
=======
>>>>>>> 2ffc5ca1cddf44a1e6d380f18eb4b10bb4578efb
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
......
......@@ -11,6 +11,7 @@ import org.junit.Test;
import javax.ws.rs.core.Application;
import java.sql.Connection;
import java.sql.SQLException;
import java.sql.SQLOutput;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
......@@ -194,4 +195,12 @@ public class UserDAOTest extends JerseyTest {
assertEquals(expectedUsername,actualUsername);
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