亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? newrandom.cpp

?? 管理項目進度工具的原代碼
?? CPP
字號:
/*
  Copyright (c) 2003/2004, Dominik Reichl <dominik.reichl@t-online.de>
  All rights reserved.

  Redistribution and use in source and binary forms, with or without
  modification, are permitted provided that the following conditions are met:

  - Redistributions of source code must retain the above copyright notice,
    this list of conditions and the following disclaimer. 
  - Redistributions in binary form must reproduce the above copyright notice,
    this list of conditions and the following disclaimer in the documentation
    and/or other materials provided with the distribution.
  - Neither the name of ReichlSoft nor the names of its contributors may be
    used to endorse or promote products derived from this software without
    specific prior written permission.

  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
  AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
  LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
  POSSIBILITY OF SUCH DAMAGE.
*/

#include "StdAfx.h"
#include "NewRandom.h"
#include "MemUtil.h"

static DWORD g_dwNewRandomInstanceCounter = 0;

static unsigned long g_xorW = 0;
static unsigned long g_xorX = 0;
static unsigned long g_xorY = 0;
static unsigned long g_xorZ = 0;

CNewRandom::CNewRandom()
{
	Reset();
}

CNewRandom::~CNewRandom()
{
	Reset();
}

void CNewRandom::Reset()
{
	mem_erase(m_pPseudoRandom, INTRAND_SIZE);
	m_dwCounter = 0;
}

void CNewRandom::Initialize()
{
	DWORD inx;

	WORD ww;
	DWORD dw;
	LARGE_INTEGER li;
	SYSTEMTIME st;
	POINT pt;
	MEMORYSTATUS ms;
	SYSTEM_INFO si;
#ifndef _WIN32_WCE
	STARTUPINFO sui;
#endif

	g_dwNewRandomInstanceCounter++;

	Reset();

	inx = 0;

	dw = GetTickCount();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); inx += 4;

	QueryPerformanceCounter(&li);
	memcpy(&m_pPseudoRandom[inx], &li, sizeof(LARGE_INTEGER));
	inx += sizeof(LARGE_INTEGER);

	GetLocalTime(&st);
	memcpy(&m_pPseudoRandom[inx], &st, sizeof(SYSTEMTIME));
	inx += sizeof(SYSTEMTIME);

	GetCursorPos(&pt);
	memcpy(&m_pPseudoRandom[inx], &pt, sizeof(POINT));
	inx += sizeof(POINT);

	ww = (WORD)(rand());
	memcpy(&m_pPseudoRandom[inx], &ww, 2); inx += 2;
	ww = (WORD)(rand());
	memcpy(&m_pPseudoRandom[inx], &ww, 2); inx += 2;
	ww = (WORD)(rand());
	memcpy(&m_pPseudoRandom[inx], &ww, 2); inx += 2;

	GetCaretPos(&pt);
	memcpy(&m_pPseudoRandom[inx], &pt, sizeof(POINT));
	inx += sizeof(POINT);

	GlobalMemoryStatus(&ms);
	memcpy(&m_pPseudoRandom[inx], &ms, sizeof(MEMORYSTATUS));
	inx += sizeof(MEMORYSTATUS);

	dw = (DWORD)GetActiveWindow();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); inx += 4;

	dw = (DWORD)GetCapture();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); inx += 4;

	dw = (DWORD)GetClipboardOwner();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); inx += 4;

#ifndef _WIN32_WCE
	// No support under Windows CE
	dw = (DWORD)GetClipboardViewer();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); 
#else
	// Leave the stack data - random :)
#endif
	inx += 4;

	dw = GetCurrentProcessId();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); inx += 4;

	dw = (DWORD)GetCurrentProcess();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); inx += 4;

	dw = (DWORD)GetActiveWindow();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); inx += 4;

	dw = GetCurrentThreadId();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); inx += 4;

	dw = (DWORD)GetCurrentThread();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); inx += 4;

	dw = (DWORD)GetDesktopWindow();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); inx += 4;

	dw = (DWORD)GetFocus();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); inx += 4;

	dw = (DWORD)GetForegroundWindow();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); inx += 4;

#ifndef _WIN32_WCE
	dw = (DWORD)GetInputState();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); 
#else
	// Leave the stack data - random :)
#endif
	inx += 4;

	dw = GetMessagePos();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); inx += 4;

#ifndef _WIN32_WCE
	dw = (DWORD)GetMessageTime();
	memcpy(&m_pPseudoRandom[inx], &dw, 4);
#else
	// Leave the stack data - random :)
#endif
	inx += 4;

	dw = (DWORD)GetOpenClipboardWindow();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); inx += 4;

	dw = (DWORD)GetProcessHeap();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); inx += 4;

	GetSystemInfo(&si);
	memcpy(&m_pPseudoRandom[inx], &si, sizeof(SYSTEM_INFO));
	inx += sizeof(SYSTEM_INFO);

	dw = (DWORD)randXorShift();
	memcpy(&m_pPseudoRandom[inx], &dw, 4); inx += 4;

#ifndef _WIN32_WCE
	GetStartupInfo(&sui);
	memcpy(&m_pPseudoRandom[inx], &sui, sizeof(STARTUPINFO));
#else
	// Leave the stack data - random :)
#endif
	inx += sizeof(STARTUPINFO);

	memcpy(&m_pPseudoRandom[inx], &g_dwNewRandomInstanceCounter, 4);
	inx += 4;

	ASSERT(inx <= INTRAND_SIZE);
}

void CNewRandom::GetRandomBuffer(BYTE *pBuf, DWORD dwSize)
{
	sha256_ctx hashctx;
	BYTE aTemp[32];
	DWORD dw;

	ASSERT(pBuf != NULL);

	while(dwSize != 0)
	{
		m_dwCounter++;
		sha256_begin(&hashctx);
		sha256_hash(m_pPseudoRandom, INTRAND_SIZE, &hashctx);
		sha256_hash((BYTE *)&m_dwCounter, 4, &hashctx);
		sha256_end(aTemp, &hashctx);

		dw = (dwSize < 32) ? dwSize : 32;
		memcpy(pBuf, aTemp, dw);
		pBuf += dw;
		dwSize -= dw;
	}
}

// Seed the xorshift random number generator
void srandXorShift(unsigned long *pSeed128)
{
	ASSERT(pSeed128 != NULL); // No NULL parameter allowed

	if((g_xorW == 0) && (g_xorX == 0) && (g_xorY == 0) && (g_xorZ == 0))
	{
		g_xorW = pSeed128[0];
		g_xorX = pSeed128[1];
		g_xorY = pSeed128[2];
		g_xorZ = pSeed128[3];

		if((g_xorW + g_xorX + g_xorY + g_xorZ) == 0) g_xorX += 0xB7E15163;
	}
}

// Fast XorShift random number generator
unsigned long randXorShift()
{
	unsigned long tmp;

	tmp = (g_xorX ^ (g_xorX << 15));
	g_xorX = g_xorY; g_xorY = g_xorZ; g_xorZ = g_xorW;
	g_xorW = (g_xorW ^ (g_xorW >> 21)) ^ (tmp ^ (tmp >> 4));

	return g_xorW;
}

void randCreateUUID(BYTE *pUUID16, CNewRandom *pRandomSource)
{
	SYSTEMTIME st;
	BYTE *p = pUUID16;
	DWORD *pdw1 = (DWORD *)pUUID16, *pdw2 = (DWORD *)&pUUID16[4],
		*pdw3 = (DWORD *)&pUUID16[8], *pdw4 = (DWORD *)&pUUID16[12];

	ASSERT(pRandomSource != NULL);

	ASSERT((sizeof(DWORD) == 4) && (sizeof(USHORT) == 2) && (pUUID16 != NULL));
	if(pUUID16 == NULL) return;

	ZeroMemory(&st, sizeof(SYSTEMTIME));
	GetSystemTime(&st);

	_PackTimeToStruct(p, st.wYear, st.wMonth, st.wDay, st.wHour, st.wMinute, st.wSecond);
	p += 5; // +5 => 5 bytes filled
	*p = (BYTE)((st.wMilliseconds >> 2) & 0xFF); // Store milliseconds
	p++; // +1 => 6 bytes filled

	// Use the xorshift random number generator as pseudo-counter
	DWORD dwPseudoCounter = randXorShift();
	memcpy(p, &dwPseudoCounter, 2); // Use only 2/4 bytes
	p += 2; // +2 => 8 bytes filled

	pRandomSource->GetRandomBuffer(p, 8); // +8 => 16 bytes filled

	// Mix buffer for better read- and processability using PHTs
	*pdw1 += *pdw2; *pdw2 += *pdw1; *pdw3 += *pdw4; *pdw4 += *pdw3;
	*pdw2 += *pdw3; *pdw3 += *pdw2; *pdw1 += *pdw4; *pdw4 += *pdw1;
	*pdw1 += *pdw3; *pdw3 += *pdw1; *pdw2 += *pdw4; *pdw4 += *pdw2;
	*pdw1 += *pdw2; *pdw2 += *pdw1; *pdw3 += *pdw4; *pdw4 += *pdw3;
	*pdw2 += *pdw3; *pdw3 += *pdw2; *pdw1 += *pdw4; *pdw4 += *pdw1;
	*pdw1 += *pdw3; *pdw3 += *pdw1; *pdw2 += *pdw4; *pdw4 += *pdw2;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩—二三区免费观看av| 天天亚洲美女在线视频| 一区二区理论电影在线观看| 蜜臀精品一区二区三区在线观看| 国产不卡视频在线播放| 欧美色视频一区| 国产视频视频一区| 日本女人一区二区三区| 91免费版在线| 国产欧美日本一区二区三区| 日本欧洲一区二区| 色欧美片视频在线观看在线视频| 久久久久久久久久看片| 调教+趴+乳夹+国产+精品| 91在线观看视频| 中文字幕精品一区二区精品绿巨人 | 日韩三级.com| 一区二区三区日韩精品| 国产成人一级电影| 精品国产91亚洲一区二区三区婷婷| 一区二区三区四区视频精品免费| 国产91清纯白嫩初高中在线观看| 国产精品日韩成人| 欧美高清一级片在线| 成人成人成人在线视频| 久久精品国内一区二区三区| 中文字幕视频一区| 精品成人免费观看| 欧美自拍丝袜亚洲| 国产伦精品一区二区三区免费迷 | 日韩国产精品大片| gogo大胆日本视频一区| 久久久www免费人成精品| 免播放器亚洲一区| 欧美精品在欧美一区二区少妇| 亚洲伦理在线精品| 色婷婷av一区二区三区软件| 亚洲欧洲成人精品av97| av在线播放不卡| 亚洲精品国产品国语在线app| 91丨porny丨首页| 一区二区三区**美女毛片| 欧美私人免费视频| 天堂va蜜桃一区二区三区漫画版| 欧美福利视频一区| 六月婷婷色综合| 久久精品视频在线免费观看| 波多野结衣一区二区三区| 亚洲男人电影天堂| 欧美日韩免费观看一区二区三区 | 蜜臀99久久精品久久久久久软件| 欧美精品九九99久久| 久久精品久久精品| 国产欧美综合色| 色又黄又爽网站www久久| 亚洲综合在线视频| 91精品国产综合久久久久久久久久| 捆绑紧缚一区二区三区视频| 国产欧美综合在线观看第十页| 99久久久国产精品免费蜜臀| 亚洲成人福利片| 久久久久国产一区二区三区四区| 99国产精品久久| 五月天一区二区三区| 精品国产欧美一区二区| av综合在线播放| 日本 国产 欧美色综合| 欧美韩国日本综合| 欧美日韩精品一区二区在线播放| 久久激情五月婷婷| 亚洲裸体xxx| 成人激情校园春色| 五月天精品一区二区三区| 久久99精品国产.久久久久久| 亚洲视频在线观看三级| 国产精品欧美久久久久一区二区| 欧美大片顶级少妇| 精品日韩99亚洲| 欧美成人bangbros| 精品久久久久久久一区二区蜜臀| 制服.丝袜.亚洲.另类.中文| 欧美剧情片在线观看| 在线播放一区二区三区| 宅男在线国产精品| 欧美一区二区美女| 精品国产免费一区二区三区四区 | 欧美久久久久中文字幕| 欧美亚洲动漫另类| 777亚洲妇女| 欧美成人官网二区| 久久免费精品国产久精品久久久久 | 男人的天堂亚洲一区| 精品在线免费视频| 国产凹凸在线观看一区二区| 成人精品国产一区二区4080| 91美女精品福利| 欧美午夜电影网| 日韩美女视频一区二区在线观看| 国产精品拍天天在线| 亚洲精品一区二区在线观看| 欧美成人国产一区二区| 久久婷婷久久一区二区三区| 久久久久久亚洲综合影院红桃 | 亚洲精品乱码久久久久久日本蜜臀| 91小视频免费观看| 懂色av一区二区三区免费观看| 国产麻豆成人精品| 国产伦精品一区二区三区视频青涩 | 欧美亚洲动漫制服丝袜| 国产91丝袜在线播放九色| 国产一二三精品| www.性欧美| 奇米777欧美一区二区| 国产日韩影视精品| 一本久久a久久精品亚洲| 亚洲福利视频三区| 日韩精品一区二区在线观看| 国产精品1024久久| 久久99国产精品尤物| 粗大黑人巨茎大战欧美成人| 91一区在线观看| 欧美三级电影一区| 日韩欧美在线影院| 中文字幕亚洲欧美在线不卡| 亚洲国产精品久久人人爱| 国产一区二区影院| 色综合久久99| 亚洲免费av在线| 欧美高清性hdvideosex| 欧美性色黄大片| 国产亚洲精品免费| 丝袜美腿亚洲综合| 成人免费福利片| 日韩美女视频一区二区在线观看| 国产精品久久久久久妇女6080 | 91在线视频播放| 日韩手机在线导航| 亚洲自拍偷拍九九九| 国产成人av电影在线| 制服.丝袜.亚洲.另类.中文| 中文字幕亚洲精品在线观看| 老司机午夜精品99久久| 欧美日韩一区二区三区视频| 国产精品国产自产拍高清av| 国产在线精品视频| 4438亚洲最大| 亚洲综合免费观看高清在线观看| 成人免费毛片嘿嘿连载视频| 日韩欧美国产麻豆| 日韩不卡免费视频| 在线一区二区观看| 中文字幕永久在线不卡| 国产剧情av麻豆香蕉精品| 欧美一区二区三区公司| 亚洲成va人在线观看| 色素色在线综合| 亚洲欧美一区二区久久| 91网站在线观看视频| 中文字幕一区二区日韩精品绯色| 国产精品69毛片高清亚洲| 日韩一区二区电影网| 婷婷开心激情综合| 欧美三级电影一区| 亚洲一区在线观看视频| 在线观看国产一区二区| 亚洲乱码日产精品bd| 91免费观看视频| 亚洲午夜精品在线| 在线免费视频一区二区| 亚洲一区二区三区激情| 精品1区2区3区| 天堂成人免费av电影一区| 制服丝袜在线91| 激情久久五月天| 国产日产亚洲精品系列| 国产91综合网| 亚洲天堂免费看| 在线一区二区三区四区五区| 亚洲成av人在线观看| 4438x亚洲最大成人网| 另类小说图片综合网| 久久久久久免费毛片精品| 波多野结衣91| 亚洲精品水蜜桃| 色呦呦一区二区三区| 成人av在线播放网址| 精品一区二区综合| 7777精品伊人久久久大香线蕉| 国产成人鲁色资源国产91色综| 石原莉奈在线亚洲三区| 中文字幕在线一区二区三区| 91精品国产综合久久久久| 91麻豆国产福利在线观看| 国产在线观看一区二区| 男女性色大片免费观看一区二区| 亚洲一区二区三区不卡国产欧美| 欧美激情一二三区| 亚洲国产高清aⅴ视频| 中文字幕精品一区| 午夜精品久久久久久久|