Sign up method.
[recipes.git] / backend / src / hash.rs
diff --git a/backend/src/hash.rs b/backend/src/hash.rs
new file mode 100644 (file)
index 0000000..3dd45a9
--- /dev/null
@@ -0,0 +1,16 @@
+use std::{string::String, env::consts::OS};
+
+use argon2::{
+    password_hash::{
+        Error,
+        rand_core::OsRng,
+        PasswordHash, PasswordHasher, PasswordVerifier, SaltString
+    },
+    Argon2
+};
+
+pub fn hash(password: &str) -> Result<String, Box<dyn std::error::Error>> {
+    let salt = SaltString::generate(&mut OsRng);
+    let argon2 = Argon2::default();
+    argon2.hash_password(password.as_bytes(), &salt).map(|h| h.to_string()).map_err(|e| e.into())
+}
\ No newline at end of file