#password-hashing #secure-password #argon2 #check #plain #compile-time #hashed

tag_password

一个利用类型系统静态确定密码哈希状态的Rust库,以增强安全性

7个版本

0.1.3 2023年11月25日
0.1.2 2023年11月25日
0.1.1 2023年11月25日
0.1.0 2023年11月19日

#793 in 加密学

每月37次下载

自定义许可

13KB
128

Transitions的密码类型

tag_password是一个简单的Rust库,通过利用类型系统来静态确定密码哈希状态,从而增强安全性。这种方法确保了在您的代码中明文密码和哈希密码之间的清晰区分,从而可以采取更强大的安全措施。

特性

  • 基于类型的密码标记:使用两种标记类型,Hashed和Plain,来区分哈希密码和明文密码。这些零大小的类型与PhantomData结合,便于在编译时检查密码状态。

  • Argon2哈希(可选):如果启用了argon2功能,该库将提供使用Argon2(一个安全的密码哈希算法)的哈希功能。

使用方法

使用Cargo将库添加到您的当前项目中

cargo add tag_password

然后创建一个新的密码并对其进行操作

use tag_password::Password;

// Create a new plain text password
let plain_password = Password::new("my_password");
// Hash the plain text password using Argon2
let hashed_password = plain_password
    .hash(None, &salt)
    .expect("Hashing should not fail.");
// Verify a hashed password against a plain text password
hashed_password
    .verify(None, plain_password)
    .expect("Verification should not fail.");

许可

本项目采用MIT许可证

依赖关系

~1–13MB
~165K SLoC