#random #wyrand #wyhash #random-string

无 std rand-wyrand

为 rand 生态系统提供的极快 WyRand PRNG

1 个不稳定版本

0.1.0 2022年8月11日

#2301算法

Apache-2.0 OR MIT

8KB

rand-wyrand

这是一个实现了 WyRand PRNG 的库,用于 RngCore 接口,来自 rand。它完全 #![no_std],并且不需要 Rust 标准库。

WyRand 是一个非常快、稳定且可靠的 PRNG。虽然不是密码学安全的,但它仍然通过了 BigCrush 和 practrand 测试,使其成为非安全应用的可靠选择。(基本上,不要用它来生成加密密钥、密码或类似的东西)

示例

生成 1 到 100 的随机数

use rand::{Rng, SeedableRng};
use rand_wyrand::WyRand;

let mut wyrand = WyRand::from_entropy();
let mut bytes = [0_u8; 64];
wyrand.fill(&mut bytes);
println!("Random bytes: {bytes:?}");

生成随机字节

use rand::{Rng, SeedableRng};
use rand_wyrand::WyRand;

let mut wyrand = WyRand::from_entropy();
println!("Random number from 1 to 100: {}", wyrand.gen_range(1..=100));

生成随机字符串

use rand::{distributions::Alphanumeric, Rng, SeedableRng};
use rand_wyrand::WyRand;

let mut wyrand = WyRand::from_entropy();
let rand_string: String = wyrand
	.sample_iter(&Alphanumeric)
	.take(16)
	.map(char::from)
	.collect();
println!("Random string: {rand_string}")

许可证

rand-wyrand 根据您的选择,受 Apache 许可证或 MIT 许可证的许可,请参阅 Apache 许可证MIT 许可证

许可证:Apache-2.0 OR MIT

依赖关系

~50KB