aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/byspel/PasswordHash.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/scala/byspel/PasswordHash.scala')
-rw-r--r--src/main/scala/byspel/PasswordHash.scala23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/main/scala/byspel/PasswordHash.scala b/src/main/scala/byspel/PasswordHash.scala
new file mode 100644
index 0000000..c97723d
--- /dev/null
+++ b/src/main/scala/byspel/PasswordHash.scala
@@ -0,0 +1,23 @@
+package byspel
+
+import de.mkammerer.argon2.Argon2Factory
+import java.nio.charset.StandardCharsets
+
+object PasswordHash {
+
+ private val argon2 = Argon2Factory.create()
+
+ /** Salt and hash a password. */
+ def protect(plain: String): String =
+ argon2.hash(
+ 10, // iterations
+ 65536, // memory
+ 1, // parallelism
+ plain, // password
+ StandardCharsets.UTF_8
+ )
+
+ def verify(plain: String, hashed: String): Boolean =
+ argon2.verify(hashed, plain)
+
+}