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

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

?? rsa.c

?? 實現RSA公鑰加密算法與解密算法 實現RSA公鑰加密算法與解密算法
?? C
字號:
#include <windows.h>
#include <richedit.h>
#include "resource.h"
#include "LLongInt.h"

int GetPrime(int decBitCount, LLongInt &result)
{
	int a = 0;
	char number;
	char *strDec;
	strDec = new char[decBitCount+1];
	if (strDec != NULL)
	{
		while (a < decBitCount)
		{
			__asm
			{
				rdtsc
				mov number, al
			}
			number = number & 0x0f;
			if (a > 0)
				number = number ^ (strDec[a-1] - '0');
			if (number > 9)
				number = number - 6;
			if (a==0 && number==0)
				number = 5;
				
			strDec[a] = number + '0';
			a++;
			
		}
		strDec[decBitCount] = 0;

		result = LLongInt(strDec);
		if (result % LLongInt(2) == LLongInt("0"))
			result = result + LLongInt(1);
		while (result.IsPrime()==0)
			result = result + LLongInt(2);
		delete strDec;
		return 1;
	}
	return 0;
}

int GetRandomLongInt(int decBitCount, LLongInt &result)
{
	int a = 0;
	char number;
	char *strDec;
	strDec = new char[decBitCount+1];
	if (strDec != NULL)
	{
		while (a < decBitCount)
		{
			__asm
			{
				rdtsc
				mov number, al
			}
			number = number & 0x0f;
			if (a > 0)
				number = number ^ (strDec[a-1] - '0');
			if (number > 9)
				number = number - 6;
			if (a==0 && number==0)
				number = 5;
				
			strDec[a] = number + '0';
			a++;
			
		}
		strDec[decBitCount] = 0;
		result = LLongInt(strDec);
		delete strDec;
		return 1;
	}
	return 0;
}


LLongInt gcd(LLongInt a, LLongInt b)
{
	LLongInt rm, quotient;
	quotient = a.Divide(b, a, rm);
	if (rm == LLongInt((__int64)0))
		return b;
	return gcd(b, rm);
}


LLongInt d, n, e;

int PrepareRSA(HWND hwnd)
{
	char buff[1024];
	GetDlgItemText(hwnd, IDC_EDIT_PUBLICKEY, buff, 200);
	if (strlen(buff) < 50)
	{
		MessageBox(hwnd, "輸入的公鑰的長度太短!請輸入一個至少為50個十進制位的。", 
				"錯誤", MB_ICONERROR);
		return 0;
	}
	LLongInt p(buff);
	if (p.IsPrime() == 0)
	{
		MessageBox(hwnd, "你輸入的公鑰不是素數!", "錯誤", MB_OK || MB_ICONERROR);
		return 0;
	}
	GetDlgItemText(hwnd, IDC_EDIT_PRIVATEKEY, buff, 200);
	if (strlen(buff) < 50)
	{
		MessageBox(hwnd, "輸入的密鑰的長度太短!請輸入一個至少為50個十進制位的。", 
				"錯誤", MB_ICONERROR);
		return 0;
	}

	LLongInt q(buff);
	if (q.IsPrime() == 0)
	{
		MessageBox(hwnd, "你輸入的密鑰不是素數!", "錯誤", MB_OK || MB_ICONERROR);
		return 0;
	}
	n = p * q;
	LLongInt Rn = (p-LLongInt(1)) * (q-LLongInt(1));
	GetRandomLongInt(10, e);
	while (gcd(e, Rn) != LLongInt(1))
		e = e + LLongInt(1);
	int rc = e.ModRevert(Rn, d);
	if (rc == 0)
	{
		MessageBox(hwnd, "e的對于Mod ∮(n) 的逆元不存在,你給出的密鑰很可能有一個不是素數。", "錯誤", MB_ICONERROR);
		return 0;
	}
	return 1;
}

DWORD CALLBACK RSADlgProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)
{
	static char *strEncrypt = NULL;
	static char *strDecrypt = NULL;
	static int enTxtLen = 0;
	static int deTxtLen = 0;
	static rsaPrepared = 0;
	switch(msg)
	{
		case WM_INITDIALOG:
			SetDlgItemText(hwnd, IDC_EDIT_PUBLICKEY, "4899540976259964394471845043944718734415425419221787504471845083734885697772440777425419227976260431");
			SetDlgItemText(hwnd, IDC_EDIT_PRIVATEKEY, "8652875601744651885568756095429481687345073847847958699867386354255285560954255609542556095425429741");
			SetDlgItemText(hwnd, IDC_EDIT_ENCRYPT, "你好,這是RSA加密和解密的演示程序。");
			{
				char buff[1024];
				GetDlgItemText(hwnd, IDC_EDIT_PUBLICKEY, buff, 200);
				LLongInt p(buff);
				GetDlgItemText(hwnd, IDC_EDIT_PRIVATEKEY, buff, 200);
				LLongInt q(buff);
				n = p * q;
				LLongInt Rn = (p-LLongInt(1)) * (q-LLongInt(1));
				GetRandomLongInt(10, e);
				while (gcd(e, Rn) != LLongInt(1))
					e = e + LLongInt(1);
				int rc = e.ModRevert(Rn, d);
				rsaPrepared = 1;
			}
			break;

		case WM_COMMAND:
		{
			if (HIWORD(wParam) == EN_CHANGE)
			{
				switch(LOWORD(wParam))
				{
				case IDC_EDIT_ENCRYPT:
					SetWindowText(GetDlgItem(hwnd, IDC_EDIT_DECRYPT), "");
					SetWindowText(GetDlgItem(hwnd, IDC_EDIT_DECRYPTRESULT), "");
					break;
				case IDC_EDIT_DECRYPT:
					SetWindowText(GetDlgItem(hwnd, IDC_EDIT_ENCRYPT), "");
					SetWindowText(GetDlgItem(hwnd, IDC_EDIT_DECRYPTRESULT), "");
					break;
				case IDC_EDIT_PUBLICKEY:
				case IDC_EDIT_PRIVATEKEY:
					rsaPrepared = 0;
					enTxtLen = 0;
					deTxtLen = 0;
					break;
				default:
					break;
				}
			}

			switch(LOWORD(wParam))
			{
			case IDC_BUTTON_ABOUT:
				MessageBox(hwnd, "作者: 盧學東\nEMail: LuXueDong@163.net", "關于RSA演示", MB_ICONINFORMATION);
				break;

			case IDC_BUTTON_GENKEYS:
			{
				LLongInt p, q;
				GetPrime(100, p);
				GetPrime(100, q);
				char buff[1024];
				SetWindowText(GetDlgItem(hwnd, IDC_EDIT_PUBLICKEY), p.LLongInt2A(buff, 10));
				SetWindowText(GetDlgItem(hwnd, IDC_EDIT_PRIVATEKEY), q.LLongInt2A(buff, 10));
				n = p * q;
				LLongInt Rn = (p-LLongInt(1)) * (q-LLongInt(1));
				GetRandomLongInt(10, e);
				while (gcd(e, Rn) != LLongInt(1))
					e = e + LLongInt(1);
				int rc = e.ModRevert(Rn, d);
				if (rc == 0)
				{
					MessageBox(hwnd, "e的對于Mod ∮(n) 的逆元不存在,你給出的密鑰很可能有一個不是素數。", "錯誤", MB_ICONERROR);
					return 0;
				}
				rsaPrepared = 1;
			}
				break;

			case IDC_BUTTON_ENCRYPT:
			{
				if (rsaPrepared == 0)
					if (PrepareRSA(hwnd) == 0)
						break;
				rsaPrepared = 1;
				if (strEncrypt != NULL)
				{
					delete strEncrypt;
					strEncrypt = NULL;
				}
				int txtLen;
				txtLen = SendMessage(GetDlgItem(hwnd, IDC_EDIT_ENCRYPT), EM_GETLIMITTEXT, 0, 0);
				if (txtLen > 0)
				{
					strEncrypt = new char[txtLen + 4];
					if (strEncrypt != NULL)
					{
						if (strDecrypt != NULL)
						{
							delete strDecrypt;
							strDecrypt = NULL;
						}
						strDecrypt = new char[((txtLen+3)/4)*(n.GetBuffLength()+1)];
						if (strDecrypt != NULL)
						{
							GetDlgItemText(hwnd, IDC_EDIT_ENCRYPT, strEncrypt, txtLen+1);
							SetDlgItemText(hwnd, IDC_EDIT_DECRYPT, "");
							SetDlgItemText(hwnd, IDC_EDIT_DECRYPTRESULT, "");
							enTxtLen = strlen(strEncrypt);
							enTxtLen = (enTxtLen + 3) /4 * 4;
							deTxtLen = 0;
							if (enTxtLen > 0)
							{
								strEncrypt[enTxtLen+1] = 0;
								strEncrypt[enTxtLen+2] = 0;
								strEncrypt[enTxtLen+3] = 0;
								unsigned int *pInt = (unsigned int*)strEncrypt;
								unsigned int *pIntDecrypt = (unsigned int*)strDecrypt;
								int intLen = (enTxtLen + 3) / 4;
								int a, b;
								for (a=0; a<intLen; a++)
								{
									__int64 i64 = *pInt;
									LLongInt m(i64);
									LLongInt c;
									c = m.ExpMod(e, n); 
									*(unsigned int*)pIntDecrypt = c.GetBuffLength();
									pIntDecrypt++;
									memcpy(pIntDecrypt, c.GetBuff(), c.GetBuffLength()*sizeof(unsigned int));
									pIntDecrypt += c.GetBuffLength();
									deTxtLen = deTxtLen + c.GetBuffLength()*sizeof(unsigned int) + sizeof(unsigned int);
									pInt++;
								}
								char *strTmp = new char[deTxtLen*8];
								if (strTmp != NULL)
								{
									strTmp[0] = 0;
									pInt = (unsigned int*)strDecrypt;
									for (a=0; a<intLen; a++)
									{
										b = *pInt;
										pIntDecrypt = pInt + 1;
										while (b > 0)
										{
											wsprintf(strTmp + strlen(strTmp), "%08x ", *pIntDecrypt);
											pIntDecrypt++;
											b--;
										}
										int len = strlen(strTmp);
										strTmp[len-1] = '\n';
										strTmp[len] = 0;
										
										pInt = pInt + *pInt + 1;
									}
									SetDlgItemText(hwnd, IDC_EDIT_DECRYPT, strTmp);
									delete strTmp;
								}
							}
						}
					}
				}
			}
				break;

			case IDC_BUTTON_DECRYPT:
			{
				if (rsaPrepared == 0)
					if (PrepareRSA(hwnd) == 0)
						break;
				rsaPrepared = 1;
				if (deTxtLen > 0)
				{
					char *strTmp = new char[deTxtLen+4];
					if (strTmp != NULL)
					{
						int len = deTxtLen;
						int a = 0;
						unsigned int *pInt = (unsigned int*)strDecrypt;
						while (len > 0)
						{
							LLongInt c(pInt+1, *pInt, 0);
							LLongInt dc = c.ExpMod(d, n);
							*(int*)(strTmp+a) = *(dc.GetBuff());
							len = len - 4 - *pInt*4;
							pInt = pInt + *pInt + 1;
							a += 4;
						}
						strTmp[a] = 0;
						SetDlgItemText(hwnd, IDC_EDIT_DECRYPTRESULT, strTmp);
						delete strTmp;
					}
				}
			}
				break;

			case IDC_BUTTON_EN_TOFILE:
			{
				OPENFILENAME ofn;
				char fn[MAX_PATH];
				fn[0] = 0;
				memset(&ofn, 0, sizeof(ofn));
				ofn.lStructSize = sizeof(ofn);
				ofn.hwndOwner = hwnd;
				ofn.lpstrFilter = "所有文本文件(*.txt)\0*.txt\0\0";
				ofn.lpstrTitle = "保存要加密的文字";
				ofn.lpstrFile = fn;
				ofn.lpstrDefExt = "txt";
				ofn.nMaxFile = sizeof(fn);
				ofn.Flags = OFN_OVERWRITEPROMPT;
				int rc;
				rc = GetSaveFileName(&ofn);
				if (rc != 0)
				{
					int txtLen;
					txtLen = SendMessage(GetDlgItem(hwnd, IDC_EDIT_ENCRYPT), EM_GETLIMITTEXT, 0, 0);
					if (txtLen > 0)
					{
						if (strEncrypt != NULL)
						{
							delete strEncrypt;
							strEncrypt = NULL;
						}
						strEncrypt = new char[txtLen + 4];
						if (strEncrypt != NULL)
						{
							GetWindowText(GetDlgItem(hwnd, IDC_EDIT_ENCRYPT), strEncrypt, txtLen+1);
							HANDLE hFile = CreateFilE(ofn.lpstrFile, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
									FILE_ATTRIBUTE_NORMAL, NULL);
							if (hFile != INVALID_HANDLE_VALUE)
							{
								DWORD dwWritten;
								WriteFile(hFile, strEncrypt, strlen(strEncrypt), &dwWritten, NULL);
								CloseHandle(hFile);
							}
						}
					}
				}
			}
				break;

			case IDC_BUTTON_DE_TOFILE:
			{
				OPENFILENAME ofn;
				char fn[MAX_PATH];
				fn[0] = 0;
				memset(&ofn, 0, sizeof(ofn));
				ofn.lStructSize = sizeof(ofn);
				ofn.hwndOwner = hwnd;
				ofn.lpstrFilter = "所有RSA加密文件(*.rsa)\0*.rsa\0\0";
				ofn.lpstrTitle = "保存加密了的文字";
				ofn.lpstrFile = fn;
				ofn.lpstrDefExt = "rsa";
				ofn.nMaxFile = sizeof(fn);
				ofn.Flags = OFN_OVERWRITEPROMPT;
				int rc;
				rc = GetSaveFileName(&ofn);
				if (rc != 0)
				{
					if (deTxtLen > 0)
					{
						if (strDecrypt != NULL)
						{
							HANDLE hFile = CreateFile(ofn.lpstrFile, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS,
									FILE_ATTRIBUTE_NORMAL, NULL);
							if (hFile != INVALID_HANDLE_VALUE)
							{
								DWORD dwWritten;
								WriteFile(hFile, strDecrypt, deTxtLen, &dwWritten, NULL);
								CloseHandle(hFile);
							}
						}
					}
				}
			}
				break;

			case IDC_BUTTON_EN_FROMFILE:
			{
				OPENFILENAME ofn;
				char fn[MAX_PATH];
				fn[0] = 0;
				memset(&ofn, 0, sizeof(ofn));
				ofn.lStructSize = sizeof(ofn);
				ofn.hwndOwner = hwnd;
				ofn.lpstrFilter = "所有文本文件(*.txt)\0*.txt\0\0";
				ofn.lpstrTitle = "打開要加密的文件";
				ofn.lpstrFile = fn;
				ofn.nMaxFile = sizeof(fn);
				ofn.Flags = OFN_FILEMUSTEXIST;
				int rc;
				rc = GetOpenFileName(&ofn);
				if (rc != 0)
				{
					if (strEncrypt != NULL)
					{
						delete strEncrypt;
						strEncrypt = NULL;
					}
					WIN32_FILE_ATTRIBUTE_DATA wfad;
					rc = GetFileAttributesEx(ofn.lpstrFile, GetFileExInfoStandard, &wfad);
					if (rc != 0)
					{
						strEncrypt = new char[wfad.nFileSizeLow + 4];
						if (strEncrypt != NULL)
						{
							HANDLE hFile = CreateFile(ofn.lpstrFile, GENERIC_READ, FILE_SHARE_READ, NULL,
								OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
							if (hFile != INVALID_HANDLE_VALUE)
							{
								DWORD dwRead;
								ReadFile(hFile, strEncrypt, wfad.nFileSizeLow, &dwRead, NULL);
								strEncrypt[dwRead] = 0;
								SetWindowText(GetDlgItem(hwnd, IDC_EDIT_ENCRYPT), strEncrypt);
								CloseHandle(hFile);
								SetWindowText(GetDlgItem(hwnd, IDC_EDIT_DECRYPT), "");
								SetWindowText(GetDlgItem(hwnd, IDC_EDIT_DECRYPTRESULT), "");
							}
						}
						enTxtLen = wfad.nFileSizeLow;
						deTxtLen = 0;
					}
				}
			}
				break;

			case IDC_BUTTON_DE_FROMFILE:
			{
				OPENFILENAME ofn;
				char fn[MAX_PATH];
				fn[0] = 0;
				memset(&ofn, 0, sizeof(ofn));
				ofn.lStructSize = sizeof(ofn);
				ofn.hwndOwner = hwnd;
				ofn.lpstrFilter = "所有RSA加密文件(*.rsa)\0*.rsa\0\0";
				ofn.lpstrTitle = "打開已經加密了的文件";
				ofn.lpstrFile = fn;
				ofn.nMaxFile = sizeof(fn);
				ofn.Flags = OFN_FILEMUSTEXIST;
				int rc;
				rc = GetOpenFileName(&ofn);
				if (rc != 0)
				{
					if (strDecrypt != NULL)
					{
						delete strDecrypt;
						strDecrypt = NULL;
					}
					WIN32_FILE_ATTRIBUTE_DATA wfad;
					rc = GetFileAttributesEx(ofn.lpstrFile, GetFileExInfoStandard, &wfad);
					if (rc != 0)
					{
						strDecrypt = new char[wfad.nFileSizeLow + 4];
						if (strDecrypt != NULL)
						{
							HANDLE hFile = CreateFile(ofn.lpstrFile, GENERIC_READ, FILE_SHARE_READ, NULL,
								OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
							if (hFile != INVALID_HANDLE_VALUE)
							{
								DWORD dwRead;
								ReadFile(hFile, strDecrypt, wfad.nFileSizeLow, &dwRead, NULL);
								strDecrypt[dwRead] = 0;
								SetWindowText(GetDlgItem(hwnd, IDC_EDIT_DECRYPT), strDecrypt);
								CloseHandle(hFile);
								SetWindowText(GetDlgItem(hwnd, IDC_EDIT_ENCRYPT), "");
								SetWindowText(GetDlgItem(hwnd, IDC_EDIT_DECRYPTRESULT), "");
							}
						}
						deTxtLen = wfad.nFileSizeLow;
						enTxtLen = 0;
						rsaPrepared = 0;
						char *strTmp = new char[deTxtLen*8];
						if (strTmp != NULL)
						{
							strTmp[0] = 0;
							int a, b;
							int len = deTxtLen;
							unsigned int *pInt = (unsigned int*)strDecrypt;
							unsigned int *pDecryptBlock;
							while (len > 0)
							{
								b = *pInt;
								pDecryptBlock = pInt + 1;
								while (b > 0)
								{
									wsprintf(strTmp + strlen(strTmp), "%08x ", *pDecryptBlock);
									pDecryptBlock++;
									b--;
								}
								int lenStrTmp = strlen(strTmp);
								strTmp[lenStrTmp-1] = '\n';
								strTmp[lenStrTmp] = 0;
								len = len - *pInt * 4 - 4;
								pInt = pInt + *pInt + 1;
							}
								
							SetDlgItemText(hwnd, IDC_EDIT_DECRYPT, strTmp);
							delete strTmp;
						}
					}
				}
			}
				break;

			case IDCANCEL:
				if (strEncrypt != NULL)
					delete strEncrypt;
				if (strDecrypt != NULL)
					delete strDecrypt;
				EndDialog(hwnd, 0);
				break;

			default:
				break;
			}
		}
			break;
		default:
			break;
	}
	return 0;
}

int WINAPI WinMain(HINSTANCE hInstThis, HINSTANCE hInstPrev, LPSTR strCmd, int showCmd)
{
	DialogBox(hInstThis, MAKEINTRESOURCE(IDD_RSADLG), 0, (DLGPROC)RSADlgProc);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美二区乱c少妇| 久久精品人人爽人人爽| 欧美电视剧在线观看完整版| 欧美国产日本韩| 亚洲va欧美va人人爽午夜| 国产乱码精品一区二区三区五月婷| 91免费小视频| 国产视频一区在线观看| 日韩在线播放一区二区| 91丨porny丨户外露出| 日韩精品专区在线影院重磅| 亚洲小说欧美激情另类| 91色|porny| 中文乱码免费一区二区| 乱一区二区av| 欧美高清性hdvideosex| 亚洲精选视频免费看| 国产不卡视频在线观看| 日韩欧美一区二区免费| 亚洲成av人**亚洲成av**| 99久久精品国产网站| 日本一区二区三区免费乱视频| 免费视频最近日韩| 欧美久久久一区| 亚洲小说春色综合另类电影| 色又黄又爽网站www久久| 国产欧美一区视频| 国产寡妇亲子伦一区二区| 精品国产一区二区精华| 日韩高清在线电影| 91精品国产欧美一区二区18| 丝袜诱惑亚洲看片| 7777精品伊人久久久大香线蕉完整版| 一区二区三区在线免费视频| 99国内精品久久| 亚洲图片你懂的| 一本一道久久a久久精品| 亚洲欧美另类图片小说| 91久久精品日日躁夜夜躁欧美| 最新日韩av在线| 91国产成人在线| 成人高清伦理免费影院在线观看| 久久亚洲精品小早川怜子| 黑人巨大精品欧美一区| 久久久久综合网| 国产91精品入口| 亚洲欧洲国产日韩| 在线欧美日韩国产| 视频在线在亚洲| 欧美tickling网站挠脚心| 国产一区二三区| 国产精品素人一区二区| 91亚洲男人天堂| 亚洲成人中文在线| 欧美v日韩v国产v| 成人一区二区三区中文字幕| 亚洲欧美日韩国产另类专区| 在线电影国产精品| 国产精品99久久久久久有的能看| 亚洲欧美综合色| 7777精品伊人久久久大香线蕉完整版 | 国产精品理论在线观看| 91亚洲国产成人精品一区二区三| 一区二区三区在线免费视频 | 性久久久久久久久久久久| 欧美一区二区久久| 成人国产亚洲欧美成人综合网| 亚洲伦在线观看| 欧美一区二区二区| 99久久精品免费| 老司机精品视频线观看86| 亚洲欧美综合另类在线卡通| 欧美一区二区三区人| av中文字幕一区| 蜜乳av一区二区| 亚洲欧洲综合另类在线| 欧美成人一区二区| 91蝌蚪porny成人天涯| 免费精品视频在线| 亚洲欧美精品午睡沙发| 欧美刺激午夜性久久久久久久| 亚洲精品在线一区二区| 欧洲亚洲国产日韩| 国产精品一级二级三级| 日本不卡视频一二三区| 国产精品初高中害羞小美女文| 欧美一区二区三区人| 色呦呦网站一区| 国产大片一区二区| 亚洲国产人成综合网站| 国产精品久久久久久久久免费桃花| 337p亚洲精品色噜噜噜| 色婷婷久久一区二区三区麻豆| 国产做a爰片久久毛片| 亚洲午夜电影在线| 亚洲欧洲一区二区在线播放| 久久久亚洲精华液精华液精华液| 欧美日本国产视频| 色综合久久综合网欧美综合网 | 亚洲伦理在线精品| 久久久久久97三级| 精品人伦一区二区色婷婷| 欧美日韩精品高清| 日本韩国欧美国产| 99久久伊人网影院| 成人午夜激情视频| 国产大片一区二区| 国产v综合v亚洲欧| 国产在线视频精品一区| 久久激情五月婷婷| 九九**精品视频免费播放| 日韩国产精品久久久久久亚洲| 午夜视频在线观看一区二区三区 | 国产精品第一页第二页第三页| 久久男人中文字幕资源站| 日韩欧美电影一二三| 日韩久久久久久| 欧美大片在线观看| 精品国产乱码久久久久久免费 | 99在线视频精品| 99久久久精品| 一本色道亚洲精品aⅴ| 96av麻豆蜜桃一区二区| 色综合久久六月婷婷中文字幕| 97久久超碰精品国产| 91麻豆免费视频| 在线观看免费成人| 欧美高清激情brazzers| 4438x亚洲最大成人网| 91精品国产高清一区二区三区| 欧美精品v国产精品v日韩精品 | 不卡区在线中文字幕| 97精品久久久久中文字幕 | 国产精品一二三四五| 成人免费电影视频| 91麻豆国产福利精品| 欧美日韩中文字幕精品| 日韩一区二区免费视频| 久久―日本道色综合久久| 欧美极品另类videosde| 亚洲人成伊人成综合网小说| 亚洲国产sm捆绑调教视频| 美女久久久精品| 成人综合婷婷国产精品久久| 91色|porny| 日韩女优视频免费观看| 亚洲国产精品av| 亚洲va中文字幕| 国产精品一区二区免费不卡| 色综合视频在线观看| 欧美一区二区三区小说| 国产精品欧美一级免费| 亚洲成人综合视频| 国产99一区视频免费| 欧美日韩国产片| 国产拍欧美日韩视频二区| 亚洲成年人影院| 国产成人免费av在线| 欧美日韩国产系列| 欧美激情综合在线| 日韩电影在线免费| 不卡一区二区三区四区| 日韩一区二区三区在线| 中文字幕在线观看一区| 久久精品噜噜噜成人av农村| 99久久国产综合精品色伊| 日韩欧美的一区| 亚洲在线成人精品| 国产1区2区3区精品美女| 91精品国产91热久久久做人人| 国产精品人成在线观看免费 | 玉足女爽爽91| 国产成人精品三级| 日韩欧美中文字幕一区| 亚洲精品国产一区二区三区四区在线| 久草在线在线精品观看| 欧美日韩精品欧美日韩精品| 国产精品久久久久三级| 极品少妇xxxx精品少妇| 91精品国产免费久久综合| 亚洲一区二区在线观看视频| 成人h精品动漫一区二区三区| 精品欧美一区二区久久| 亚洲国产乱码最新视频| 91麻豆视频网站| 国产精品久久久久久久第一福利| 免费av成人在线| 欧美一区日韩一区| 午夜av区久久| 欧美丝袜第三区| 亚洲午夜国产一区99re久久| 99久久er热在这里只有精品15| 精品国产91洋老外米糕| 蜜臀久久久久久久| 欧美一区二区三区免费观看视频| 夜夜嗨av一区二区三区网页 | 国产精品传媒入口麻豆| 国产传媒日韩欧美成人| 久久久久高清精品| 国产老妇另类xxxxx|