#random #security #fuzzing #security-testing #fuzz

无std weird-data

以使罕见边缘情况非常可能的方式生成随机数据

4个版本 (2个破坏性版本)

0.2.0 2024年1月5日
0.1.0 2024年1月3日
0.0.1 2023年12月30日
0.0.0 2023年12月30日

666测试 中排名

每月下载33次

MIT 许可证

35KB
615

Weird Data

注意:此crate仍在开发中,未来可能会发生变化。

免责声明:在此crate中使用的随机数生成器**不**是**加密**安全的。仅使用这些生成器生成测试输入,不要在生产代码中依赖它们进行加密目的!例如,您可以使用这些生成器测试加密工具,但您不能在生产环境中部署依赖于这些生成器进行安全性的代码。

以使罕见边缘情况非常可能的方式生成随机数据。

例如,如果通过均匀采样32位数据生成随机的f32,某些值将很少出现,例如NANINFINITY。在进行随机测试,如模糊测试时,反复生成表现良好的数据并不是非常有用。如果我们能人为地增加这些特殊值出现的可能性,以便我们更频繁地使用它们进行测试,则要更有用。

此外,一些随机数crate永远不会生成某些问题位模式,例如NAN

此crate基于fastrand crate。

路线图

  • 生成随机的f32f64
    • 生成随机的NAN数字
    • 生成随机的非规范数字
    • 生成特殊值,如EPSILON-0.0
  • 生成奇特的整数,如0、MAXMIN
  • 生成奇特的Unicode字符
  • 生成无法存储在String中的无效UTF-8字节序列。
  • 生成随机数据结构,利用其他生成器
    • 用随机数据填充数组
    • 生成包含随机数据的向量
    • 生成具有问题大小的向量
    • 以随机方式转换UTF-8字符串,例如混合规范形式、添加随机变音符号等...
  • 使用宏和模式生成随机结构体,利用其他生成器,可能使用Serde
  • 支持无标准库

依赖项

~31KB