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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? zmd5.cpp

?? QQ密碼加密算法工具(附原代碼),不過這個(gè)好像是以前的版本
?? CPP
?? 第 1 頁 / 共 2 頁
字號:

/*-======================- Copyright (c) 2006 -======================-

程序作者:

    Hacker Ans : 駭客任務(wù)組Ans軟件工作室
聯(lián)系方式:

    QQ:360038060
	[oopfans]群:13161288
修改時(shí)間:

    2007-03-09


功能描述:
    將原信息加密成MD5摘要,這個(gè)類的頭文件下面附上了ronald l. rivest在
	1992年8月向ieft提交的rfc1321.txt,這是一份最權(quán)威的文檔.

使用說明:
	這個(gè)類是一個(gè)虛基類,要使用這個(gè)類必須繼承自這個(gè)類,并實(shí)現(xiàn)這個(gè)類里的
	virtual void OnProcessing(int PrcessNum)=0;純虛函數(shù),這個(gè)純虛函數(shù)
	用于在對一個(gè)較大文件進(jìn)行MD5計(jì)算時(shí),將處理進(jìn)度返回給用戶

版權(quán)聲明:
    許可任何單位,個(gè)人隨意使用,拷貝,修改,散布及出售這份代碼,但是必須保
    留此版權(quán)信息,以慰藉作者辛勤的勞動,及表明此代碼的來源,如若此份代碼
    有任何BUG,請通知作者,以便彌補(bǔ)作者由于水平所限而導(dǎo)致的一些錯(cuò)誤和不
    足,謝謝!

-======================- Copyright (c) 2007 -======================-*/

#include "stdafx.h"
#include "ZMD5.h"

ZMD5::ZMD5()
{
	m_FileOpen=false;
}

ZMD5::~ZMD5()
{
	if(m_FileOpen)
		fclose(m_pFile);
}

unsigned int ZMD5::ROTATE_LEFT(unsigned int x,unsigned int n)
{
	return (((x) << (n)) | ((x) >> (32-(n))));
}

unsigned int ZMD5::F(unsigned int x,unsigned int y,unsigned int z)
{
	return ((x & y) | ((~x) & z));
}
unsigned int ZMD5::G(unsigned int x,unsigned int y,unsigned int z)
{
	return ((x & z) | (y & (~z)));
}

unsigned int ZMD5::H(unsigned int x,unsigned int y,unsigned int z)
{
	return x ^ y ^ z;
}

unsigned int ZMD5::I(unsigned int x,unsigned int y,unsigned int z)
{
	return (y ^ (x | (~z)));
}	

void ZMD5::FF(unsigned int& a,unsigned int b,unsigned int c,unsigned int d,unsigned int x,int s,unsigned int ac)
{
	(a) += F ((b), (c), (d)) + (x) + (ac);
	(a) = ROTATE_LEFT ((a), (s));
	(a) += (b);
}

void ZMD5::GG(unsigned int& a,unsigned int b,unsigned int c,unsigned int d,unsigned int x,int s,unsigned int ac)
{
	(a) += G ((b), (c), (d)) + (x) + (ac);
	(a) = ROTATE_LEFT ((a), (s));
	(a) += (b);
}

void ZMD5::HH(unsigned int& a,unsigned int b,unsigned int c,unsigned int d,unsigned int x,int s,unsigned int ac)
{
	(a) += H ((b), (c), (d)) + (x) + (ac);
	(a) = ROTATE_LEFT ((a), (s));
	(a) += (b);
}

void ZMD5::II(unsigned int& a,unsigned int b,unsigned int c,unsigned int d,unsigned int x,int s,unsigned int ac)
{
	(a) += I ((b), (c), (d)) + (x) + (ac);
	(a) = ROTATE_LEFT ((a), (s));
	(a) += (b);
}

void ZMD5::Init()
{
	S11 =  7;	S21 =  5;	S31 =  4;	S41 =  6;
	S12 = 12;	S22 =  9;	S32 = 11;	S42 = 10;
	S13 = 17;	S23 = 14;	S33 = 16;	S43 = 15;
	S14 = 22;	S24 = 20;	S34 = 23;	S44 = 21;

	A = 0x67452301;  // in memory, this is 0x01234567
	B = 0xEFCDAB89;  // in memory, this is 0x89ABCDEF
	C = 0x98BADCFE;  // in memory, this is 0xFEDCBA98
	D = 0x10325476;  // in memory, this is 0x76543210
}

void ZMD5::Append(unsigned int MsgLen)
{
	//計(jì)算要補(bǔ)位的字節(jié)數(shù)
	int m = MsgLen % 64;
	if(m==0)
		m_AppendByte=56;
	else if(m<56)
		m_AppendByte=56-m;
	else
		m_AppendByte=64-m+56;

	/*
	記錄原始信息長度(單位:bit),以下過程將一個(gè)32位的字節(jié)數(shù)轉(zhuǎn)
	換為64位的bit數(shù),這個(gè)計(jì)算過程和rfc1321.txt中的略有不同.
	*/
	
	//截取傳入長度的高十六位和低十六位
	int hWord=(MsgLen & 0xFFFF0000) >> 16;
	int lWord=MsgLen & 0x0000FFFF;

	//將低十六位和高十六位分別乘以八(1byte=8bit)
	int hDiv=hWord*8;
	int lDiv=lWord*8;

	//
	m_MsgLen[0] = lDiv & 0xFF ;
	m_MsgLen[1] = (lDiv >> 8) & 0xFF ;
	m_MsgLen[2] = ((lDiv >> 16) & 0xFF) | (hDiv & 0xFF);
	m_MsgLen[3] = (hDiv >> 8) & 0xFF ;
	m_MsgLen[4] = (hDiv >> 16) & 0xFF ;
	m_MsgLen[5] = (hDiv >> 24) & 0xFF ;
	m_MsgLen[6] = 0;
	m_MsgLen[7] = 0;
}

void ZMD5::Transform(unsigned char Block[64])
{
	//將64字節(jié)位轉(zhuǎn)換為16個(gè)字節(jié)
	unsigned long x[16];
	for (int i=0,j=0;j<64;i++,j+=4)
		x[i]=Block[j] | Block[j+1] <<8 | Block[j+2] <<16 | Block[j+3] <<24 ;

	//初始化臨時(shí)寄存器變量
	unsigned int a,b,c,d;
	a=A; b=B; c=C; d=D;

	//第一輪計(jì)算
	FF (a, b, c, d, x[ 0], S11, 0xD76AA478); //  1
	FF (d, a, b, c, x[ 1], S12, 0xE8C7B756); //  2
	FF (c, d, a, b, x[ 2], S13, 0x242070DB); //  3
	FF (b, c, d, a, x[ 3], S14, 0xC1BDCEEE); //  4
	FF (a, b, c, d, x[ 4], S11, 0xF57C0FAF); //  5
	FF (d, a, b, c, x[ 5], S12, 0x4787C62A); //  6
	FF (c, d, a, b, x[ 6], S13, 0xA8304613); //  7
	FF (b, c, d, a, x[ 7], S14, 0xFD469501); //  8
	FF (a, b, c, d, x[ 8], S11, 0x698098D8); //  9
	FF (d, a, b, c, x[ 9], S12, 0x8B44F7AF); // 10 
	FF (c, d, a, b, x[10], S13, 0xFFFF5BB1); // 11 
	FF (b, c, d, a, x[11], S14, 0x895CD7BE); // 12 
	FF (a, b, c, d, x[12], S11, 0x6B901122); // 13 
	FF (d, a, b, c, x[13], S12, 0xFD987193); // 14 
	FF (c, d, a, b, x[14], S13, 0xA679438E); // 15 
	FF (b, c, d, a, x[15], S14, 0x49B40821); // 16 

	//第二輪計(jì)算
	GG (a, b, c, d, x[ 1], S21, 0xF61E2562); // 17 
	GG (d, a, b, c, x[ 6], S22, 0xC040B340); // 18 
	GG (c, d, a, b, x[11], S23, 0x265E5A51); // 19 
	GG (b, c, d, a, x[ 0], S24, 0xE9B6C7AA); // 20 
	GG (a, b, c, d, x[ 5], S21, 0xD62F105D); // 21 
	GG (d, a, b, c, x[10], S22,  0x2441453); // 22 
	GG (c, d, a, b, x[15], S23, 0xD8A1E681); // 23 
	GG (b, c, d, a, x[ 4], S24, 0xE7D3FBC8); // 24 
	GG (a, b, c, d, x[ 9], S21, 0x21E1CDE6); // 25 
	GG (d, a, b, c, x[14], S22, 0xC33707D6); // 26 
	GG (c, d, a, b, x[ 3], S23, 0xF4D50D87); // 27 
	GG (b, c, d, a, x[ 8], S24, 0x455A14ED); // 28 
	GG (a, b, c, d, x[13], S21, 0xA9E3E905); // 29 
	GG (d, a, b, c, x[ 2], S22, 0xFCEFA3F8); // 30 
	GG (c, d, a, b, x[ 7], S23, 0x676F02D9); // 31 
	GG (b, c, d, a, x[12], S24, 0x8D2A4C8A); // 32 

	//第三輪計(jì)算
	HH (a, b, c, d, x[ 5], S31, 0xFFFA3942); // 33 
	HH (d, a, b, c, x[ 8], S32, 0x8771F681); // 34 
	HH (c, d, a, b, x[11], S33, 0x6D9D6122); // 35 
	HH (b, c, d, a, x[14], S34, 0xFDE5380C); // 36 
	HH (a, b, c, d, x[ 1], S31, 0xA4BEEA44); // 37 
	HH (d, a, b, c, x[ 4], S32, 0x4BDECFA9); // 38 
	HH (c, d, a, b, x[ 7], S33, 0xF6BB4B60); // 39 
	HH (b, c, d, a, x[10], S34, 0xBEBFBC70); // 40 
	HH (a, b, c, d, x[13], S31, 0x289B7EC6); // 41 
	HH (d, a, b, c, x[ 0], S32, 0xEAA127FA); // 42 
	HH (c, d, a, b, x[ 3], S33, 0xD4EF3085); // 43 
	HH (b, c, d, a, x[ 6], S34,  0x4881D05); // 44 
	HH (a, b, c, d, x[ 9], S31, 0xD9D4D039); // 45 
	HH (d, a, b, c, x[12], S32, 0xE6DB99E5); // 46 
	HH (c, d, a, b, x[15], S33, 0x1FA27CF8); // 47 
	HH (b, c, d, a, x[ 2], S34, 0xC4AC5665); // 48 

	//第四輪計(jì)算
	II (a, b, c, d, x[ 0], S41, 0xF4292244); // 49 
	II (d, a, b, c, x[ 7], S42, 0x432AFF97); // 50 
	II (c, d, a, b, x[14], S43, 0xAB9423A7); // 51 
	II (b, c, d, a, x[ 5], S44, 0xFC93A039); // 52 
	II (a, b, c, d, x[12], S41, 0x655B59C3); // 53 
	II (d, a, b, c, x[ 3], S42, 0x8F0CCC92); // 54 
	II (c, d, a, b, x[10], S43, 0xFFEFF47D); // 55 
	II (b, c, d, a, x[ 1], S44, 0x85845DD1); // 56 
	II (a, b, c, d, x[ 8], S41, 0x6FA87E4F); // 57 
	II (d, a, b, c, x[15], S42, 0xFE2CE6E0); // 58 
	II (c, d, a, b, x[ 6], S43, 0xA3014314); // 59 
	II (b, c, d, a, x[13], S44, 0x4E0811A1); // 60 
	II (a, b, c, d, x[ 4], S41, 0xF7537E82); // 61 
	II (d, a, b, c, x[11], S42, 0xBD3AF235); // 62 
	II (c, d, a, b, x[ 2], S43, 0x2AD7D2BB); // 63 
	II (b, c, d, a, x[ 9], S44, 0xEB86D391); // 64 

	//保存當(dāng)前寄存器結(jié)果
	A+=a; B+=b; C+=c; D+=d;
}

/*********************************************
將寄存器ABCD的最終值轉(zhuǎn)換為十六進(jìn)制返回給用戶
注意:低位在前高位在后
*********************************************/
string ZMD5::ToHex(bool UpperCase)
{
	string strResult;
	int ResultArray[4]={A,B,C,D};
	char Buf[33]={0};
	for(int i=0;i<4;i++)
	{
		memset(Buf,0,3);
		sprintf(Buf,"%02x",ResultArray[i] & 0x00FF);
		strResult+=Buf;

		memset(Buf,0,3);
		sprintf(Buf,"%02x",(ResultArray[i] >>  8) & 0x00FF);
		strResult+=Buf;

		memset(Buf,0,3);
		sprintf(Buf,"%02x",(ResultArray[i] >> 16) & 0x00FF);
		strResult+=Buf;

		memset(Buf,0,3);
		sprintf(Buf,"%02x",(ResultArray[i] >> 24) & 0x00FF);
		strResult+=Buf;
	}
	if(UpperCase) CharUpper((char *)strResult.c_str());
	return strResult;
}

/**************************************
MD5的主要計(jì)算過程可以參照這個(gè)函數(shù)
**************************************/
string ZMD5::GetMD5OfString(string InputMessage,bool UpperCase)
{
	//初始化MD5所需常量
	Init();

	//計(jì)算追加長度
	Append(InputMessage.length());

	//對原始信息進(jìn)行補(bǔ)位
	for(int i=0;i<m_AppendByte;i++)
	{
		if(i==0) InputMessage+=(unsigned char)0x80;
		else InputMessage+=(unsigned char)0x0;
	}

	//將原始信息長度附加在補(bǔ)位后的數(shù)據(jù)后面
	for(int i=0;i<8;i++) InputMessage+=m_MsgLen[i];

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久久亚洲蜜桃| 日韩va欧美va亚洲va久久| 久久九九久久九九| 精品国产1区2区3区| 91精品国产乱| 久久久综合网站| 26uuu精品一区二区| 欧美国产欧美亚州国产日韩mv天天看完整| 欧美电视剧在线看免费| 国产日本欧美一区二区| 亚洲国产视频a| 国产精品一级黄| 欧美日韩国产成人在线91| 久久午夜电影网| 亚洲福利视频一区二区| 国产精品一区二区久激情瑜伽| 99久久精品一区二区| 日韩美女视频一区二区在线观看| 亚洲欧美电影院| 成人午夜激情片| 国产午夜亚洲精品午夜鲁丝片 | 日韩精品久久久久久| 不卡的av电影| 国产亚洲1区2区3区| 国产一区二区三区在线看麻豆| 91九色02白丝porn| 一区二区三区成人| 91麻豆产精品久久久久久| 日本一二三四高清不卡| 国产在线日韩欧美| 日韩三级精品电影久久久| 亚洲成a人片综合在线| 欧美在线观看视频一区二区 | 3atv一区二区三区| 亚洲午夜久久久久久久久电影院| 不卡大黄网站免费看| 一区二区三区四区在线播放| 欧美性大战久久久久久久蜜臀| 自拍偷拍欧美激情| 欧美亚洲综合在线| 精品一区二区三区免费毛片爱| 欧美哺乳videos| 成人av资源站| 日韩黄色小视频| 中文字幕在线免费不卡| 欧美亚洲另类激情小说| 老司机精品视频在线| 日本一区二区三区电影| 91成人在线免费观看| 久久不见久久见免费视频7| 国产精品美女久久久久久久久| 色哟哟精品一区| 久草这里只有精品视频| 亚洲精品国产第一综合99久久| 日韩三级视频在线观看| 色94色欧美sute亚洲线路一ni| 日韩av网站免费在线| 亚洲欧洲精品天堂一级| 日韩免费福利电影在线观看| 91久久线看在观草草青青| 国产精品资源网站| 日韩av成人高清| 午夜影院在线观看欧美| 亚洲女同ⅹxx女同tv| 久久久精品影视| 久久蜜桃av一区精品变态类天堂| 欧美日韩久久久久久| 在线观看不卡视频| 欧美日免费三级在线| 色婷婷综合在线| 欧美午夜精品久久久久久超碰| 91丨porny丨首页| 91免费视频大全| 欧美日韩国产成人在线免费| 91精品在线一区二区| 日韩精品一区二区三区视频播放 | 国产精品中文字幕欧美| 老司机精品视频在线| 国产老妇另类xxxxx| 国产成人a级片| 色婷婷av一区二区三区大白胸| 一本久久综合亚洲鲁鲁五月天| 欧美在线你懂得| 欧美xxx久久| 亚洲六月丁香色婷婷综合久久| 一区二区高清免费观看影视大全| 日韩成人午夜电影| 99精品久久免费看蜜臀剧情介绍| 精品视频在线免费看| 精品久久一二三区| 亚洲国产va精品久久久不卡综合| 精品一区二区三区视频在线观看 | 成人一区二区在线观看| 欧美高清视频www夜色资源网| 国产精品乱码一区二三区小蝌蚪| 午夜日韩在线观看| 日本高清不卡在线观看| 国产日韩欧美不卡在线| 日产国产高清一区二区三区| 91在线免费视频观看| 久久亚洲捆绑美女| 蜜桃av一区二区| 538在线一区二区精品国产| 亚洲你懂的在线视频| 99视频精品免费视频| 国产欧美日韩另类一区| 国产一区二区电影| 久久久久久毛片| 成人综合婷婷国产精品久久免费| 欧美sm美女调教| 精品亚洲免费视频| 精品久久一区二区三区| 国产一区二区三区视频在线播放| 精品国产一二三区| 国产91丝袜在线播放0| 欧美激情中文字幕一区二区| av网站一区二区三区| 亚洲第四色夜色| 欧美精品一区二区三区蜜桃视频| 国产一区高清在线| 中文字幕一区二区三区四区| 欧美在线观看一二区| 捆绑变态av一区二区三区| 久久香蕉国产线看观看99| 国产成人aaa| 香蕉av福利精品导航| 国产欧美日韩亚州综合| 欧美性受xxxx黑人xyx| 国产在线视频精品一区| 午夜精品福利在线| 国产精品丝袜91| 91精品国产免费| 在线看国产一区二区| 成人动漫一区二区| 青青草原综合久久大伊人精品| 国产精品五月天| 欧美成人激情免费网| 欧美精品在线一区二区三区| 99re视频这里只有精品| 激情欧美一区二区| 国内精品久久久久影院一蜜桃| 性欧美疯狂xxxxbbbb| 亚洲第一电影网| 蜜臀va亚洲va欧美va天堂| 视频一区在线视频| 首页综合国产亚洲丝袜| 午夜精品一区二区三区电影天堂| 亚洲电影中文字幕在线观看| 亚洲美女在线一区| 亚洲精品免费在线| 亚洲一区免费观看| 调教+趴+乳夹+国产+精品| 亚洲高清一区二区三区| 日本美女视频一区二区| 蜜桃久久久久久| 成人禁用看黄a在线| 在线区一区二视频| 日韩一级免费观看| 久久久精品2019中文字幕之3| 久久久久久久久伊人| 综合自拍亚洲综合图不卡区| 亚洲欧洲精品天堂一级| 五月婷婷综合网| caoporen国产精品视频| 欧美体内she精高潮| 欧美成人三级电影在线| 亚洲最大成人综合| 国产伦理精品不卡| 欧美日韩一本到| 久久久久久97三级| 亚洲高清一区二区三区| 成人精品视频.| 日韩一区二区三区精品视频| 日本一区二区三区电影| 久久精品国产在热久久| 欧美日韩在线直播| 日韩一区日韩二区| av午夜精品一区二区三区| 国产亚洲欧美日韩在线一区| 亚洲高清不卡在线观看| 在线观看免费视频综合| 亚洲人成精品久久久久| 国产91丝袜在线观看| 国产婷婷一区二区| 国产成人精品免费视频网站| 精品日韩在线观看| 久久精品av麻豆的观看方式| 欧美老肥妇做.爰bbww视频| 亚洲精品一二三四区| 99久久精品国产观看| 亚洲丝袜精品丝袜在线| 一本久久a久久精品亚洲| 夜夜嗨av一区二区三区四季av| 99精品黄色片免费大全| 一区二区三区精品在线观看| 色域天天综合网| 美腿丝袜亚洲综合| ㊣最新国产の精品bt伙计久久| 在线观看91精品国产入口| 日本视频免费一区|