8个版本

0.0.8 2024年5月12日
0.0.7 2023年11月5日
0.0.6 2023年10月4日
0.0.5 2023年9月10日
0.0.2 2023年2月13日

#503密码学


用于 2 crates

MIT/Apache

64KB
699

Hash (HSH) logo

哈希 (HSH)

量子计算抗性密码哈希库,用于密码哈希和验证

Mini Functions库系列的一部分。

Hash (HSH) Banner

Made With Rust Crates.io Lib.rs Docs.rs License Codecov

网站文档报告错误请求功能贡献指南

divider

概述 📖

《Hash HSH》Rust库提供了一个接口,用于实现安全的哈希和摘要算法,特别设计用于密码加密和验证。

该库提供了一个简单的API,使得存储和验证哈希密码变得容易。它使用最新的量子计算抗性密码学进步,为密码提供强大的安全性。量子计算抗性密码学是指那些被认为能够抵御量子计算机攻击的密码学算法,通常是指公钥算法。随着量子计算的发展,这个库的功能确保了通过该系统管理的密码即使在最先进的计算能力下也保持安全。

该库支持以下密码哈希方案(基于密码的密钥派生函数)

  • Argon2i:一种前沿且高度安全的密钥派生函数,旨在防御传统暴力攻击和彩虹表攻击。(推荐)
  • Bcrypt:一种密码哈希函数,旨在抵御暴力攻击。它是一个工作因子函数,意味着它需要一定的时间来计算。这使得它难以用暴力算法攻击。
  • Scrypt:一种密码哈希函数,旨在防御暴力攻击和彩虹表攻击。它是一个内存硬度和工作因子函数,意味着它需要大量的内存和时间来计算。这使得它非常难以用GPU或其他并行计算设备攻击。

该库是开发人员存储和以安全方式验证密码的有价值工具。它易于使用,可以集成到各种应用程序中。

功能 ✨

  • 符合多种密码散列方案(基于密码的密钥派生函数),如Argon2i、Bcrypt和Scrypt。这使得库更加通用,可用于各种应用程序。
  • 量子抗性,使其能够抵御未来使用量子计算机的攻击。随着量子计算机变得越来越强大,这是一个重要功能。
  • 易于使用。该库提供了一个简单的API,使存储和验证散列密码变得容易。
  • 可以集成到各种应用程序中。该库是用Rust编写的,这使得它易于集成到任何Rust项目中,并且速度快、效率高、安全可靠。

安全密码存储

Hash(HSH)提供了一种安全的方式来存储和验证散列密码。密码使用argon2i、bcrypt、scrypt算法进行散列,这些算法被认为是目前最安全的散列算法之一。该库提供了一个简单的接口用于生成和验证散列,使得在任何Rust应用程序中实现安全密码存储变得容易。

易于使用

Hash(HSH)包括用于生成和验证密码散列以及管理密码和盐值的简单函数。开发人员可以轻松地将库集成到他们的Rust项目中,并立即开始使用。该库设计得直观易用,因此开发人员可以在构建应用程序时无需担心密码安全。

灵活

Hash(HSH)允许用户自定义用于生成散列的密码和盐的长度。这种灵活性使得开发人员可以根据自己的特定需求定制库,无论是需要较短还是较长的密码和盐值。该库还包括宏,使得与Hash结构一起工作变得容易,允许开发人员快速轻松地设置和检索密码和盐值。

轻量级

Hash(HSH)是一个轻量级的库,可以轻松集成到任何Rust项目中。该库没有外部依赖,并且效率高。这意味着开发人员可以在不担心重大性能开销的情况下,将安全密码存储添加到他们的应用程序中。

安装 📦

使用hsh只需要几分钟即可启动。

要求

当前最低支持的Rust工具链版本是Rust 1.60 或更高版本(稳定版)。建议您安装最新的稳定版Rust。

平台支持

hsh支持多种CPU架构。它在MacOS、Linux和Windows上得到支持并进行了测试。

文档

ℹ️ 信息:请访问我们的网站获取更多信息,并在docs.rslib.rscrates.io上找到我们的文档。

用法 📖

要在您的项目中使用hsh,请将以下内容添加到您的Cargo.toml文件中

[dependencies]
hsh = "0.0.8"

将以下内容添加到您的main.rs文件中

extern crate hsh;
use hsh::*;

然后您可以在应用程序代码中使用这些函数。

示例

Hash (HSH)附带了一些示例,您可以使用这些示例开始使用。这些示例位于项目的examples目录中。要运行示例,克隆存储库,并在项目根目录中从终端运行以下命令。

cargo run --example hsh

语义版本策略 🚥

为了使发布周期更加透明,并努力保持向后兼容性,Hash (HSH)遵循语义化版本控制

许可证 📝

该项目受MIT许可证和Apache许可证(版本2.0)的条款约束。

贡献 🤝

除非你明确声明,否则任何根据Apache-2.0许可证定义的、有意提交以包含在作品中的贡献,将按照上述方式双许可,不附加任何额外条款或条件。

divider

致谢 💙

衷心感谢所有为Mini Functions做出贡献的杰出贡献者,感谢他们的帮助和支持。

特别感谢Rust Reddit社区,为如何改进此项目提供了许多有用的建议。

依赖项

~8–17MB
~200K SLoC