#include <wincrypt.h>
class RealRandomizer
{
public:
RealRandomizer()
{
if (!CryptAcquireContextW(&_hProv, NULL, NULL, PROV_RSA_FULL, 0)) {
throw 1;
}
}
~RealRandomizer()
{
if (_hProv != NULL) {
CryptReleaseContext(_hProv, 0);
}
}
template<typename T>
T Generate()
{
T Data;
if (!CryptGenRandom(_hProv, sizeof(T), (BYTE*)&Data)) {
throw 1;
}
return Data;
}
private:
HCRYPTPROV _hProv = NULL;
};
C++ Windows 真随机数生成器
猜你喜欢
转载自blog.csdn.net/u012088909/article/details/105132723
今日推荐
周排行