UUIDの生成
uuid crateを使用します。
Cargo.toml
uuid = { version = "0.8.1", features = ["serde", "v4"] }
生成処理のサンプル
use uuid::Uuid; let uuid = Uuid::new_v4().to_hyphenated().to_string();
パスワードハッシング
アルゴリズムはbcryptにした為、pwhash crateを使用しました。
Cargo.toml
pwhash = "0.3.1"
生成処理のサンプル
fn hashing_password(password: &String) -> String { bcrypt::hash(password).unwrap() }
verify
生成したハッシュとの突き合わせ。
#[test] fn test_hashing_password() { let hash = hashing_password(&"password123".to_string()); assert_eq!(bcrypt::verify("password123",&hash), true); assert_eq!(bcrypt::verify("password12", &hash), false); }