RandX 1.4.3
基于 xoshiro/xoroshiro 算法族的纯头文件伪随机数生成器库
载入中...
搜索中...
未找到
密码学安全

ChaCha20 CSPRNG 与 OS 熵源 API 更多...

函数

void RandX::SecureRandomBytes (void *buf, std::size_t n)
 用 OS 密码学熵源填充 [buf, buf+n) 字节
std::uint64_t RandX::SecureSeed ()
 生成密码学安全的 64 位随机种子
bool RandX::IsOsCryptoEntropyAvailable () noexcept
 检测 OS 密码学熵源是否可用
void RandX::Reseed (std::uint64_t seed)
 重置默认引擎的种子(用于测试复现)
void RandX::ReseedRandom ()
 重置默认引擎为真随机种子

详细描述

ChaCha20 CSPRNG 与 OS 熵源 API

函数说明

◆ IsOsCryptoEntropyAvailable()

bool RandX::IsOsCryptoEntropyAvailable ( )
inlinenodiscardnoexcept

检测 OS 密码学熵源是否可用

返回
true 当且仅当 BCryptGenRandom/getrandom/SecRandomCopyBytes 可用; false 表示当前运行在 std::random_device 兜底路径,不保证密码学安全
函数调用图:

◆ Reseed()

void RandX::Reseed ( std::uint64_t seed)
inline

重置默认引擎的种子(用于测试复现)

参数
seed新的种子值
函数调用图:

◆ ReseedRandom()

void RandX::ReseedRandom ( )
inline

重置默认引擎为真随机种子

函数调用图:

◆ SecureRandomBytes()

void RandX::SecureRandomBytes ( void * buf,
std::size_t n )
inline

用 OS 密码学熵源填充 [buf, buf+n) 字节

参数
buf目标缓冲区指针
n需要填充的字节数
异常
std::runtime_error当 OS 熵源不可用时抛出(CSPRNG 无熵不可用 = 致命错误)
函数调用图:

◆ SecureSeed()

std::uint64_t RandX::SecureSeed ( )
inlinenodiscard

生成密码学安全的 64 位随机种子

返回
复用 SecureRandomBytes 取前 8 字节的种子值
函数调用图: