CryptGenRandom windows下生成随机数的函数使用
来源:互联网 发布:开淘宝c店 编辑:程序博客网 时间:2024/05/01 14:08
// test_CryptGenRandom.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include "windows.h"
#include "wincrypt.h"
#include <iostream>
using namespace std;
class CCryptRandom
{
public:
BOOL Random(void *lpBuffer,DWORD dwLen);
CCryptRandom();
virtual~CCryptRandom();
private:
HCRYPTPROV hCryptProv;
};
CCryptRandom::CCryptRandom()
{
hCryptProv=NULL;
CryptAcquireContext((HCRYPTPROV*)&hCryptProv,NULL,NULL,PROV_RSA_FULL,0);
}
CCryptRandom::~CCryptRandom()
{if(hCryptProv!=NULL)CryptReleaseContext(hCryptProv,0);
}
BOOL CCryptRandom::Random(void *lpBuffer, DWORD dwLen)
{
if(hCryptProv==NULL)return FALSE;
BOOL bRet=CryptGenRandom(hCryptProv,dwLen,(BYTE*)lpBuffer);///reinterpret_cast<LPBYTE>lpBuffer);
return bRet;
}
int _tmain(int argc, _TCHAR* argv[])
{
CCryptRandom crypt;
BYTE byte[MAX_PATH];
BOOL bReturnValue = crypt.Random(&byte, MAX_PATH);
for (DWORD i = 0; i < 8; ++i)
std::cout << std::dec << static_cast<unsigned int>(byte[i]) << std::endl;
return 0;
}
//
#include "stdafx.h"
#include "windows.h"
#include "wincrypt.h"
#include <iostream>
using namespace std;
class CCryptRandom
{
public:
BOOL Random(void *lpBuffer,DWORD dwLen);
CCryptRandom();
virtual~CCryptRandom();
private:
HCRYPTPROV hCryptProv;
};
CCryptRandom::CCryptRandom()
{
hCryptProv=NULL;
CryptAcquireContext((HCRYPTPROV*)&hCryptProv,NULL,NULL,PROV_RSA_FULL,0);
}
CCryptRandom::~CCryptRandom()
{if(hCryptProv!=NULL)CryptReleaseContext(hCryptProv,0);
}
BOOL CCryptRandom::Random(void *lpBuffer, DWORD dwLen)
{
if(hCryptProv==NULL)return FALSE;
BOOL bRet=CryptGenRandom(hCryptProv,dwLen,(BYTE*)lpBuffer);///reinterpret_cast<LPBYTE>lpBuffer);
return bRet;
}
int _tmain(int argc, _TCHAR* argv[])
{
CCryptRandom crypt;
BYTE byte[MAX_PATH];
BOOL bReturnValue = crypt.Random(&byte, MAX_PATH);
for (DWORD i = 0; i < 8; ++i)
std::cout << std::dec << static_cast<unsigned int>(byte[i]) << std::endl;
return 0;
}
0 0
- CryptGenRandom windows下生成随机数的函数使用
- C语言rand()获取随机数和windows下的CryptGenRandom
- windows下随机数的生成
- Windows CE下随机数生成函数
- ABAP 生成随机数的函数
- Cocos2D的随机数生成函数
- c++ 生成随机数rand()函数的使用:设定范围
- 概率、随机数、随机数生成函数
- 生成任意位随机数的函数
- C# 易用的随机数生成函数
- oracle数据库生成随机数的函数
- 用PHP生成随机数的函数
- Python生成随机数的一些函数
- C语言生成随机数函数的用法
- Oracle中生成随机数的函数
- 深入了解生成随机数的函数rand()
- Oracle中生成随机数的函数
- Python生成随机数的一些函数
- 解决:java.lang.NoClassDefFoundError: org/aspectj/weaver/reflect/ReflectionWorld$ReflectionWorldExcepti
- *数组名(数组元素) 与*数组名(指针数组中的数组名)
- 黑马程序员——C语言数据类型总结
- mybatis 根据数组批量删除
- PE文件结构(二) 区块,文件偏移与RVA转换
- CryptGenRandom windows下生成随机数的函数使用
- Mysql安全基础篇学习笔记
- 黑马程序员——C语言进制和字符串
- mybatis表关联查询
- 《魔鬼搭讪学》读书笔记
- switch语句格式
- 采用Spring注解方式, 实现事务
- 关于break语句与goto语句的区分
- win7安装nodejs失败(node.js setup wizard ended prematurely)