6 个版本
使用旧的 Rust 2015
0.3.0 | 2024 年 8 月 1 日 |
---|---|
0.2.3 | 2022 年 2 月 23 日 |
0.2.2 | 2020 年 12 月 23 日 |
0.2.1 | 2020 年 5 月 28 日 |
0.1.0 | 2019 年 10 月 15 日 |
1359 在 算法 中排名
每月下载量 54,718
用于 65 个 包(直接使用 32 个)
26KB
497 行
rand_seeder
基于 SipHash 的通用生成器。
此包旨在与 rand 包一起使用,允许任何支持 rand_core::SeedableRng
的 RNG 从任何可哈希值中生成种子。它提供以下功能
SipHasher
是 SipHash-2-4 的便携式实现。根据作者的描述,SipHash 是一种安全、快速且简单的密钥哈希函数。SipRng
是基于SipHash
状态和混合操作的 PRNG。它具有很高的统计质量,通过至少 4 TiB 的 practrand 测试。SipHasher::into_rng()
将一个SipHasher
转换为一个SipRng
,保持完整的 256 位状态。(这可能会破坏哈希器的安全性。)Seeder
是上述功能的便利包装器(参见示例)。
种子设计为快速、健壮、灵活和便携。此库旨在用于模拟和游戏,例如,允许任何关键字重现模拟或过程生成的世界。
此库不适用于加密应用,并且绝对不适用于密码哈希。
示例
use rand_core::RngCore; // for next_u32
use rand_pcg::Pcg64; // or whatever you like
use rand_seeder::Seeder;
let mut rng: Pcg64 = Seeder::from("stripy zebra").make_rng();
println!("First value: {}", rng.next_u32());
Rust 版本要求
需要 rustc 1.32 或更高版本以使用 .to_le_bytes()
方法以及与 rand_core
0.5 兼容。
许可证
rand_seeder
在 MIT 许可证和 Apache 许可证(版本 2.0)的条款下分发。
有关详细信息,请参阅 LICENSE-APACHE 和 LICENSE-MIT。
依赖关系
~47KB