1个稳定版本
22.10.0 | 2022年10月25日 |
---|
#1945 in 算法
17KB
257 行
random_lfsr_256_galois
基于256位多项式上的线性反馈移位寄存器(LFSR,Galois变体)的简单随机生成器实现。
这是什么?
random-lfsr-256-galois 是一个极简的均匀分布伪随机数生成器,具有扭曲随机序列的可能性。它基于256位LFSR多项式 x256 + x254 + x251 + x246,生成的随机组合比标准的32位伪随机生成器更多。
此实现是为了教育和娱乐目的开发的(例如游戏)。不要将其用于加密项目,如果您将其用于加密,您将得到您应得的。
用法
use random_lfsr_256_galois::LFSRGaloisBuilder;
//Create PRNG with builder
let mut lfsr = LFSRGaloisBuilder::new().build();
// Then get random value of type you need (up to 128bit)
let random_byte: u8 = lfsr.next();
let random_int: i32 = lfsr.next();
let random_uint64: u64 = lfsr.next();
let random_u128: u128 = lfsr.next();
您还可以通过在随机时刻调用 LFSRGalois::shake
函数来扭曲寄存器,以打断LFSR序列,例如用户操作(鼠标点击、按键)或其他外部事件,如接收网络数据包。
use random_lfsr_256_galois::LFSRGaloisBuilder;
let mut lfsr = LFSRGaloisBuilder::new().build();
lfsr.shake()
许可
X11
依赖关系
~1–1.9MB
~40K SLoC