Password hashing
build / build (push) Successful in 4m15s

This commit is contained in:
ciomek committed 2026-08-17 21:01:37 +02:00
1 parent 24f6670203
commit 52c904d896
4 files changed
+25 -6

No files matched your search

+7 -4
View File
@@ -58,13 +58,16 @@ dependencies {
// MQTT
implementation("org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5")
include("org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5")
implementation("org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.5")
// JSON
implementation("com.fasterxml.jackson.core:jackson-databind:2.20.0")
include("com.fasterxml.jackson.core:jackson-databind:2.20.0")
include("com.fasterxml.jackson.core:jackson-core:2.20.0")
include("com.fasterxml.jackson.core:jackson-annotations:2.20")
implementation("com.fasterxml.jackson.core:jackson-databind:2.20.0")
implementation("com.fasterxml.jackson.core:jackson-core:2.20.0")
implementation("com.fasterxml.jackson.core:jackson-annotations:2.20")
// Hashing
implementation("de.mkammerer:argon2-jvm:2.12")
}
java {
toolchain {
@@ -3,6 +3,7 @@ package ciomek.loon.commands;
import ciomek.loon.mqtt.MQTTClient;
import ciomek.loon.mqtt.payload.ChangePasswordPayload;
import ciomek.loon.mqtt.payload.RegisterResponse;
import ciomek.loon.utils.PasswordHasher;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.arguments.ArgumentTypeString;
@@ -34,7 +35,9 @@ public class ChangePasswordCommand implements CommandManager.CommandRegistry {
String password = ArgumentTypeString.getString(context, "password");
ChangePasswordPayload payload = new ChangePasswordPayload(player.uuid.toString(), password);
String hashedPassword = PasswordHasher.hash(password);
ChangePasswordPayload payload = new ChangePasswordPayload(player.uuid.toString(), hashedPassword);
MQTTClient.getInstance().publish(payload.topics().get(0), payload.toJson());
@@ -3,6 +3,7 @@ package ciomek.loon.commands;
import ciomek.loon.mqtt.MQTTClient;
import ciomek.loon.mqtt.payload.RegisterPayload;
import ciomek.loon.mqtt.payload.RegisterResponse;
import ciomek.loon.utils.PasswordHasher;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.mojang.brigadier.CommandDispatcher;
import com.mojang.brigadier.arguments.ArgumentTypeString;
@@ -37,7 +38,9 @@ public class RegisterCommand implements CommandManager.CommandRegistry {
String internalUsername = ArgumentTypeString.getString(context, "internalUsername");
String password = ArgumentTypeString.getString(context, "password");
RegisterPayload payload = new RegisterPayload(player.uuid.toString(), password, internalUsername);
String hashedPassword = PasswordHasher.hash(password);
RegisterPayload payload = new RegisterPayload(player.uuid.toString(), hashedPassword, internalUsername);
MQTTClient.getInstance().publish(payload.topics().get(0), payload.toJson());
@@ -0,0 +1,10 @@
package ciomek.loon.utils;
import de.mkammerer.argon2.Argon2Factory;
public class PasswordHasher {
public static String hash(String password) {
var argon2 = Argon2Factory.create();
return argon2.hash(3, 65536, 1, password.toCharArray());
}
}