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

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

?? sha.cpp

?? 通過SHA1
?? CPP
字號:
#ifndef DLL_FILE
#define DLL_FILE
#endif



#include "sha.h"

//#include "sha1.h"

#ifdef SHA1_UTILITY_FUNCTIONS
#define SHA1_MAX_FILE_BUFFER 8000
#endif

// Rotate x bits to the left
#ifndef ROL32
#ifdef _MSC_VER
#define ROL32(_val32, _nBits) _rotl(_val32, _nBits)
#else
#define ROL32(_val32, _nBits) (((_val32)<<(_nBits))|((_val32)>>(32-(_nBits))))
#endif
#endif

#ifdef SHA1_LITTLE_ENDIAN
#define SHABLK0(i) (m_block->l[i] = \
	(ROL32(m_block->l[i],24) & 0xFF00FF00) | (ROL32(m_block->l[i],8) & 0x00FF00FF))
#else
#define SHABLK0(i) (m_block->l[i])
#endif

#define SHABLK(i) (m_block->l[i&15] = ROL32(m_block->l[(i+13)&15] ^ m_block->l[(i+8)&15] \
	^ m_block->l[(i+2)&15] ^ m_block->l[i&15],1))

// SHA-1 rounds
#define _R0(v,w,x,y,z,i) { z+=((w&(x^y))^y)+SHABLK0(i)+0x5A827999+ROL32(v,5); w=ROL32(w,30); }
#define _R1(v,w,x,y,z,i) { z+=((w&(x^y))^y)+SHABLK(i)+0x5A827999+ROL32(v,5); w=ROL32(w,30); }
#define _R2(v,w,x,y,z,i) { z+=(w^x^y)+SHABLK(i)+0x6ED9EBA1+ROL32(v,5); w=ROL32(w,30); }
#define _R3(v,w,x,y,z,i) { z+=(((w|x)&y)|(w&x))+SHABLK(i)+0x8F1BBCDC+ROL32(v,5); w=ROL32(w,30); }
#define _R4(v,w,x,y,z,i) { z+=(w^x^y)+SHABLK(i)+0xCA62C1D6+ROL32(v,5); w=ROL32(w,30); }
CSHA1::CSHA1()
{
	m_block = (SHA1_WORKSPACE_BLOCK *)m_workspace;

	Reset();
}

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

void CSHA1::Reset()
{
	// SHA1 initialization constants
	m_state[0] = 0x67452301;
	m_state[1] = 0xEFCDAB89;
	m_state[2] = 0x98BADCFE;
	m_state[3] = 0x10325476;
	m_state[4] = 0xC3D2E1F0;

	m_count[0] = 0;
	m_count[1] = 0;
}

void CSHA1::Transform(UINT_32 *state, UINT_8 *buffer)
{
	// Copy state[] to working vars
	UINT_32 a = state[0], b = state[1], c = state[2], d = state[3], e = state[4];

	memcpy(m_block, buffer, 64);

	// 4 rounds of 20 operations each. Loop unrolled.
	_R0(a,b,c,d,e, 0); _R0(e,a,b,c,d, 1); _R0(d,e,a,b,c, 2); _R0(c,d,e,a,b, 3);
	_R0(b,c,d,e,a, 4); _R0(a,b,c,d,e, 5); _R0(e,a,b,c,d, 6); _R0(d,e,a,b,c, 7);
	_R0(c,d,e,a,b, 8); _R0(b,c,d,e,a, 9); _R0(a,b,c,d,e,10); _R0(e,a,b,c,d,11);
	_R0(d,e,a,b,c,12); _R0(c,d,e,a,b,13); _R0(b,c,d,e,a,14); _R0(a,b,c,d,e,15);
	_R1(e,a,b,c,d,16); _R1(d,e,a,b,c,17); _R1(c,d,e,a,b,18); _R1(b,c,d,e,a,19);
	_R2(a,b,c,d,e,20); _R2(e,a,b,c,d,21); _R2(d,e,a,b,c,22); _R2(c,d,e,a,b,23);
	_R2(b,c,d,e,a,24); _R2(a,b,c,d,e,25); _R2(e,a,b,c,d,26); _R2(d,e,a,b,c,27);
	_R2(c,d,e,a,b,28); _R2(b,c,d,e,a,29); _R2(a,b,c,d,e,30); _R2(e,a,b,c,d,31);
	_R2(d,e,a,b,c,32); _R2(c,d,e,a,b,33); _R2(b,c,d,e,a,34); _R2(a,b,c,d,e,35);
	_R2(e,a,b,c,d,36); _R2(d,e,a,b,c,37); _R2(c,d,e,a,b,38); _R2(b,c,d,e,a,39);
	_R3(a,b,c,d,e,40); _R3(e,a,b,c,d,41); _R3(d,e,a,b,c,42); _R3(c,d,e,a,b,43);
	_R3(b,c,d,e,a,44); _R3(a,b,c,d,e,45); _R3(e,a,b,c,d,46); _R3(d,e,a,b,c,47);
	_R3(c,d,e,a,b,48); _R3(b,c,d,e,a,49); _R3(a,b,c,d,e,50); _R3(e,a,b,c,d,51);
	_R3(d,e,a,b,c,52); _R3(c,d,e,a,b,53); _R3(b,c,d,e,a,54); _R3(a,b,c,d,e,55);
	_R3(e,a,b,c,d,56); _R3(d,e,a,b,c,57); _R3(c,d,e,a,b,58); _R3(b,c,d,e,a,59);
	_R4(a,b,c,d,e,60); _R4(e,a,b,c,d,61); _R4(d,e,a,b,c,62); _R4(c,d,e,a,b,63);
	_R4(b,c,d,e,a,64); _R4(a,b,c,d,e,65); _R4(e,a,b,c,d,66); _R4(d,e,a,b,c,67);
	_R4(c,d,e,a,b,68); _R4(b,c,d,e,a,69); _R4(a,b,c,d,e,70); _R4(e,a,b,c,d,71);
	_R4(d,e,a,b,c,72); _R4(c,d,e,a,b,73); _R4(b,c,d,e,a,74); _R4(a,b,c,d,e,75);
	_R4(e,a,b,c,d,76); _R4(d,e,a,b,c,77); _R4(c,d,e,a,b,78); _R4(b,c,d,e,a,79);

	// Add the working vars back into state
	state[0] += a;
	state[1] += b;
	state[2] += c;
	state[3] += d;
	state[4] += e;

	// Wipe variables
#ifdef SHA1_WIPE_VARIABLES
	a = b = c = d = e = 0;
#endif
}

// Use this function to hash in binary data and strings
void CSHA1::Update(UINT_8 *data, UINT_32 len)
{
	UINT_32 i, j;

	j = (m_count[0] >> 3) & 63;

	if((m_count[0] += len << 3) < (len << 3)) m_count[1]++;

	m_count[1] += (len >> 29);

	if((j + len) > 63)
	{
		i = 64 - j;
		memcpy(&m_buffer[j], data, i);
		Transform(m_state, m_buffer);

		for( ; i + 63 < len; i += 64) Transform(m_state, &data[i]);

		j = 0;
	}
	else i = 0;

	memcpy(&m_buffer[j], &data[i], len - i);
}

#ifdef SHA1_UTILITY_FUNCTIONS
// Hash in file contents
bool CSHA1::HashFile(char *szFileName)
{
	unsigned long ulFileSize, ulRest, ulBlocks;
	unsigned long i;
	UINT_8 uData[SHA1_MAX_FILE_BUFFER];
	FILE *fIn;

	if(szFileName == NULL) return false;

	fIn = fopen(szFileName, "rb");
	if(fIn == NULL) return false;

	fseek(fIn, 0, SEEK_END);
	ulFileSize = (unsigned long)ftell(fIn);
	fseek(fIn, 0, SEEK_SET);

	if(ulFileSize != 0)
	{
		ulBlocks = ulFileSize / SHA1_MAX_FILE_BUFFER;
		ulRest = ulFileSize % SHA1_MAX_FILE_BUFFER;
	}
	else
	{
		ulBlocks = 0;
		ulRest = 0;
	}

	for(i = 0; i < ulBlocks; i++)
	{
		fread(uData, 1, SHA1_MAX_FILE_BUFFER, fIn);
		Update((UINT_8 *)uData, SHA1_MAX_FILE_BUFFER);
	}

	if(ulRest != 0)
	{
		fread(uData, 1, ulRest, fIn);
		Update((UINT_8 *)uData, ulRest);
	}

	fclose(fIn); fIn = NULL;
	return true;
}
#endif

void CSHA1::Final()
{
	UINT_32 i;
	UINT_8 finalcount[8];

	for(i = 0; i < 8; i++)
		finalcount[i] = (UINT_8)((m_count[((i >= 4) ? 0 : 1)]
			>> ((3 - (i & 3)) * 8) ) & 255); // Endian independent

	Update((UINT_8 *)"\200", 1);

	while ((m_count[0] & 504) != 448)
		Update((UINT_8 *)"\0", 1);

	Update(finalcount, 8); // Cause a SHA1Transform()

	for(i = 0; i < 20; i++)
	{
		m_digest[i] = (UINT_8)((m_state[i >> 2] >> ((3 - (i & 3)) * 8) ) & 255);
	}

	// Wipe variables for security reasons
#ifdef SHA1_WIPE_VARIABLES
	i = 0;
	memset(m_buffer, 0, 64);
	memset(m_state, 0, 20);
	memset(m_count, 0, 8);
	memset(finalcount, 0, 8);
	Transform(m_state, m_buffer);
#endif
}

#ifdef SHA1_UTILITY_FUNCTIONS
// Get the final hash as a pre-formatted string
void CSHA1::ReportHash(char *szReport, unsigned char uReportType)
{
	unsigned char i;
	char szTemp[16];

	if(szReport == NULL) return;

	if(uReportType == REPORT_HEX)
	{
		sprintf(szTemp, "%02X", m_digest[0]);
		strcat(szReport, szTemp);

		for(i = 1; i < 20; i++)
		{
			sprintf(szTemp, " %02X", m_digest[i]);
			strcat(szReport, szTemp);
		}
	}
	else if(uReportType == REPORT_DIGIT)
	{
		sprintf(szTemp, "%u", m_digest[0]);
		strcat(szReport, szTemp);

		for(i = 1; i < 20; i++)
		{
			sprintf(szTemp, " %u", m_digest[i]);
			strcat(szReport, szTemp);
		}
	}
	else strcpy(szReport, "Error: Unknown report type!");
}
#endif

// Get the raw message digest
void CSHA1::GetHash(UINT_8 *puDest)
{
	memcpy(puDest, m_digest, 20);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人高清视频在线| 欧美日韩一区二区在线观看| 视频一区二区中文字幕| 亚洲综合一二区| 一区二区三区在线视频免费观看| 亚洲欧美一区二区视频| 国产精品久久久久久久久久免费看| 国产欧美一区二区精品久导航| 久久精品亚洲一区二区三区浴池| 337p日本欧洲亚洲大胆色噜噜| 久久天天做天天爱综合色| 欧美精品一区二区三区很污很色的 | 91麻豆成人久久精品二区三区| 成人免费观看男女羞羞视频| 91老师片黄在线观看| 欧美色视频一区| 91精品婷婷国产综合久久竹菊| 精品乱码亚洲一区二区不卡| 国产精品色在线观看| 一区二区三区资源| 久久99精品国产麻豆婷婷| 粉嫩欧美一区二区三区高清影视| 99精品视频中文字幕| 欧美一区二区三区四区高清| 久久久久久久综合日本| 一区二区三区在线观看欧美| 老司机午夜精品| 99久久国产综合色|国产精品| 欧美日韩成人综合天天影院 | 亚洲18色成人| 极品尤物av久久免费看| 99视频超级精品| 69堂成人精品免费视频| 欧美国产乱子伦 | 中文成人av在线| 日韩精品久久久久久| 国产成人av电影免费在线观看| 色天天综合色天天久久| 精品国产91洋老外米糕| 亚洲精品乱码久久久久久| 久久精品国产成人一区二区三区 | 国产片一区二区三区| 亚洲精品日韩综合观看成人91| 美日韩一区二区| 91久久香蕉国产日韩欧美9色| 久久免费看少妇高潮| 五月婷婷久久丁香| 99久久夜色精品国产网站| 精品噜噜噜噜久久久久久久久试看| 亚洲日本乱码在线观看| 国内精品伊人久久久久影院对白| 欧美三级韩国三级日本三斤| 椎名由奈av一区二区三区| 精品一二三四区| 欧美一区二区视频网站| 一级中文字幕一区二区| 成人激情文学综合网| 久久网这里都是精品| 麻豆91在线观看| 91.xcao| 亚洲高清在线精品| 欧美在线观看一区二区| 一区二区三区日韩欧美| 91在线国内视频| 国产精品乱码人人做人人爱| 国产精品1区2区| 精品电影一区二区三区| 国模娜娜一区二区三区| 精品电影一区二区| 国产一区二区三区在线看麻豆| 欧美mv和日韩mv国产网站| 麻豆91精品视频| 日韩午夜三级在线| 国产专区欧美精品| 久久久久国产成人精品亚洲午夜| 精品无码三级在线观看视频| 精品国产一区二区国模嫣然| 国产综合久久久久影院| 久久久久久久久一| 国产高清不卡二三区| 国产亚洲制服色| 国产99精品国产| 国产精品乱码久久久久久| 白白色 亚洲乱淫| 一区二区三区四区蜜桃| 欧美日韩国产区一| 久久国产免费看| 国产欧美日韩麻豆91| 91亚洲精品久久久蜜桃网站| 亚洲最新视频在线观看| 欧美一区日本一区韩国一区| 国模娜娜一区二区三区| 中文字幕一区二区日韩精品绯色| 在线中文字幕一区| 美女视频第一区二区三区免费观看网站| 日韩欧美一区在线观看| 成人av网站在线观看免费| 亚洲一二三级电影| 精品国产自在久精品国产| 成人伦理片在线| 日韩主播视频在线| 国产清纯美女被跳蛋高潮一区二区久久w| 成人av电影免费在线播放| 午夜精品福利一区二区三区av | 91国偷自产一区二区三区成为亚洲经典| 亚洲一区二区在线免费观看视频 | 精品视频在线看| 久久99精品久久久久| 亚洲视频在线观看一区| 日韩免费视频一区二区| 色综合激情五月| 韩国女主播成人在线| 夜夜操天天操亚洲| 久久久美女艺术照精彩视频福利播放| 色系网站成人免费| 狠狠色伊人亚洲综合成人| 一区二区免费视频| 国产女主播一区| 欧美成人官网二区| 在线免费观看成人短视频| 国产91高潮流白浆在线麻豆| 日韩高清一区二区| 亚洲影视资源网| 中文字幕一区二区不卡| 久久精品欧美日韩精品| 日韩一级成人av| 欧美三级电影一区| 色欧美片视频在线观看| 国产精品91一区二区| 开心九九激情九九欧美日韩精美视频电影| 亚洲欧洲韩国日本视频| 久久精品视频一区二区三区| 欧美一区二区视频在线观看2020 | 成人精品一区二区三区四区| 美国十次综合导航| 丝袜美腿一区二区三区| 一区二区三区高清在线| 亚洲男人的天堂av| 亚洲欧洲av在线| 最近中文字幕一区二区三区| 中文字幕av免费专区久久| 精品国产乱码91久久久久久网站| 欧美一区二区久久| 欧美久久久一区| 制服丝袜亚洲网站| 51精品久久久久久久蜜臀| 欧美色网一区二区| 欧美日韩视频一区二区| 91福利在线观看| 在线观看欧美黄色| 欧美日韩免费电影| 欧美放荡的少妇| 日韩亚洲欧美一区二区三区| 日韩欧美中文字幕一区| 日韩欧美一二三区| 精品免费国产二区三区| 久久人人爽人人爽| 国产精品人人做人人爽人人添 | 亚洲成人www| 日韩高清中文字幕一区| 日本欧洲一区二区| 久久99精品久久久| 懂色一区二区三区免费观看 | 久久99国产乱子伦精品免费| 久久99精品一区二区三区| 国产精品2024| 91丨九色丨尤物| 欧美日韩一区二区三区不卡| 91麻豆精品国产| 国产日韩欧美精品电影三级在线| 最新中文字幕一区二区三区| 一区二区欧美精品| 久久精品国内一区二区三区| 国产一区在线观看视频| 91丨九色丨国产丨porny| 欧美日韩一级二级三级| 欧美一级xxx| 亚洲同性gay激情无套| 日韩av午夜在线观看| 国产精品1区2区3区在线观看| 91小视频在线免费看| 欧美美女直播网站| 国产日韩精品一区| 性做久久久久久| 国产98色在线|日韩| 欧美丝袜自拍制服另类| 26uuu亚洲综合色| 亚洲一区二区三区国产| 国产一区二区伦理| 欧美亚洲高清一区二区三区不卡| 日韩一区二区三区在线| 中文字幕日本乱码精品影院| 麻豆久久一区二区| 在线观看网站黄不卡| 久久精品一区二区| 日韩国产在线观看| 91久久精品一区二区二区| 久久久久青草大香线综合精品| 一区二区三区成人在线视频| 国产精品综合视频|