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

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

?? gudianmima.cpp

?? 古典加密算法,非常實用
?? CPP
字號:
#include "stdafx.h"
#include "Crpt.h"
#include "CrptDlg.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

// CAboutDlg dialog used for App About

class CAboutDlg : public CDialog
{
public:
	CAboutDlg();

// Dialog Data
	//{{AFX_DATA(CAboutDlg)
	enum { IDD = IDD_ABOUTBOX };
	//}}AFX_DATA

	// ClassWizard generated virtual function overrides
	//{{AFX_VIRTUAL(CAboutDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support
	//}}AFX_VIRTUAL

// Implementation
protected:
	//{{AFX_MSG(CAboutDlg)
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
	//{{AFX_DATA_INIT(CAboutDlg)
	//}}AFX_DATA_INIT
}

void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CAboutDlg)
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
	//{{AFX_MSG_MAP(CAboutDlg)
		// No message handlers
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

// CCrptDlg dialog

CCrptDlg::CCrptDlg(CWnd* pParent /*=NULL*/)
	: CDialog(CCrptDlg::IDD, pParent)
{
	//{{AFX_DATA_INIT(CCrptDlg)
	m_strCt1 = _T("");
	m_strPt1 = _T("");
	m_iKey1 = 0;
	m_strCt2 = _T("");
	m_iKey2a = 0;
	m_iKey2b = 0;
	m_strPt2 = _T("");
	m_strKey3 = _T("");
	m_strPt3 = _T("");
	m_strCt3 = _T("");
	m_strPt4 = _T("");
	m_strKey4 = _T("");
	m_strCt4 = _T("");
	//}}AFX_DATA_INIT
	// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CCrptDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CCrptDlg)
	DDX_Text(pDX, IDC_CT1, m_strCt1);
	DDX_Text(pDX, IDC_PT1, m_strPt1);
	DDX_Text(pDX, IDC_KEY1, m_iKey1);
	DDX_Text(pDX, IDC_CT2, m_strCt2);
	DDX_Text(pDX, IDC_KEY2a, m_iKey2a);
	DDX_Text(pDX, IDC_KEY2b, m_iKey2b);
	DDX_Text(pDX, IDC_PT2, m_strPt2);
	DDX_Text(pDX, IDC_KEY3, m_strKey3);
	DDX_Text(pDX, IDC_PT3, m_strPt3);
	DDX_Text(pDX, IDC_CT3, m_strCt3);
	DDX_Text(pDX, IDC_PT4, m_strPt4);
	DDX_Text(pDX, IDC_KEY4, m_strKey4);
	DDX_Text(pDX, IDC_CT4, m_strCt4);
	//}}AFX_DATA_MAP
}

BEGIN_MESSAGE_MAP(CCrptDlg, CDialog)
	//{{AFX_MSG_MAP(CCrptDlg)
	ON_WM_SYSCOMMAND()
	ON_WM_PAINT()
	ON_WM_QUERYDRAGICON()
	ON_BN_CLICKED(IDC_METH1, OnMeth1)
	ON_BN_CLICKED(IDC_KEY1SET, OnKey1set)
	ON_BN_CLICKED(IDC_E1, OnE1)
	ON_BN_CLICKED(IDC_D1, OnD1)
	ON_BN_CLICKED(IDC_CLEARPT1, OnClearpt1)
	ON_BN_CLICKED(IDC_CLEARCT1, OnClearct1)
	ON_BN_CLICKED(IDC_METH2, OnMeth2)
	ON_BN_CLICKED(IDC_KEY2SET, OnKey2set)
	ON_BN_CLICKED(IDC_E2, OnE2)
	ON_BN_CLICKED(IDC_D2, OnD2)
	ON_BN_CLICKED(IDC_CLEARPT2, OnClearpt2)
	ON_BN_CLICKED(IDC_CLEARCT2, OnClearct2)
	ON_BN_CLICKED(IDC_METH3, OnMeth3)
	ON_BN_CLICKED(IDC_KEY3SET, OnKey3set)
	ON_BN_CLICKED(IDC_E3, OnE3)
	ON_BN_CLICKED(IDC_D3, OnD3)
	ON_BN_CLICKED(IDC_CLEARPT3, OnClearpt3)
	ON_BN_CLICKED(IDC_CLEARCT3, OnClearct3)
	ON_BN_CLICKED(IDC_METH4, OnMeth4)
	ON_BN_CLICKED(IDC_KEY4SET, OnKey4set)
	ON_BN_CLICKED(IDC_E4, OnE4)
	ON_BN_CLICKED(IDC_D4, OnD4)
	ON_BN_CLICKED(IDC_CLEARPT4, OnClearpt4)
	ON_BN_CLICKED(IDC_CLEARCT4, OnClearct4)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()
// CCrptDlg message handlers

BOOL CCrptDlg::OnInitDialog()
{
	CDialog::OnInitDialog();

	// Add "About..." menu item to system menu.

	// IDM_ABOUTBOX must be in the system command range.
	ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
	ASSERT(IDM_ABOUTBOX < 0xF000);

	CMenu* pSysMenu = GetSystemMenu(FALSE);
	if (pSysMenu != NULL)
	{
		CString strAboutMenu;
		strAboutMenu.LoadString(IDS_ABOUTBOX);
		if (!strAboutMenu.IsEmpty())
		{
			pSysMenu->AppendMenu(MF_SEPARATOR);
			pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
		}
	}

	// Set the icon for this dialog.  The framework does this automatically
	//  when the application's main window is not a dialog
	SetIcon(m_hIcon, TRUE);			// Set big icon
	SetIcon(m_hIcon, FALSE);		// Set small icon
	
	// TODO: Add extra initialization here
	m_bJ1 = 0;
	m_bJ2 = 0;
	m_bJ3 = 0;
	m_bJ4 = 0;
	return TRUE;  // return TRUE  unless you set the focus to a control
}

void CCrptDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
	if ((nID & 0xFFF0) == IDM_ABOUTBOX)
	{
		CAboutDlg dlgAbout;
		dlgAbout.DoModal();
	}
	else
	{
		CDialog::OnSysCommand(nID, lParam);
	}
}

// If you add a minimize button to your dialog, you will need the code below
//  to draw the icon.  For MFC applications using the document/view model,
//  this is automatically done for you by the framework.

void CCrptDlg::OnPaint() 
{
	if (IsIconic())
	{
		CPaintDC dc(this); // device context for painting

		SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);

		// Center icon in client rectangle
		int cxIcon = GetSystemMetrics(SM_CXICON);
		int cyIcon = GetSystemMetrics(SM_CYICON);
		CRect rect;
		GetClientRect(&rect);
		int x = (rect.Width() - cxIcon + 1) / 2;
		int y = (rect.Height() - cyIcon + 1) / 2;

		// Draw the icon
		dc.DrawIcon(x, y, m_hIcon);
	}
	else
	{
		CDialog::OnPaint();
	}
}

// The system calls this to obtain the cursor to display while the user drags
//  the minimized window.
HCURSOR CCrptDlg::OnQueryDragIcon()
{
	return (HCURSOR) m_hIcon;
}

void CCrptDlg::OnMeth1() 
{
	// TODO: Add your control notification handler code here
	AfxMessageBox(" 移位密碼介紹:\r 字母表用整數(shù)0 - 25來標(biāo)識, 密鑰K為整數(shù),且取值空間為0到25\r 加密函數(shù):x = x + k (mod 26)\r 解密函數(shù):x = x - k (mod 26)\r 當(dāng)K=3時,為凱撒密碼\r 不識別空格", MB_ICONINFORMATION);
}

void CCrptDlg::OnKey1set() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	m_bJ1 = 1;
}

void CCrptDlg::OnE1() 
{
	// TODO: Add your control notification handler code here
	if (m_bJ1 == 0)
	{
		AfxMessageBox("請檢查是否設(shè)置了密鑰或輸入了明文");
	}
	else
	{
		UpdateData();
		int i = m_strPt1.GetLength();
		m_strCt1.Empty();		
		for (int j = 0; j < i; j++)
		{
			m_strCt1 += (m_strPt1[j] - 97 + m_iKey1) % 26 + 97;
			
		}
		UpdateData(FALSE);
	}
}

void CCrptDlg::OnD1() 
{
	// TODO: Add your control notification handler code here
	if (m_bJ1 == 0)
	{
		AfxMessageBox("請檢查是否設(shè)置了密鑰或輸入了密文");
	}
	else
	{
		UpdateData();
		int i = m_strCt1.GetLength();
		m_strPt1.Empty();		
		for (int j = 0; j < i; j++)
		{
			if (m_strCt1[j] - 97 - m_iKey1 >= 0)
			{
				m_strPt1 += (m_strCt1[j] - 97 - m_iKey1) % 26 + 97;
			}
			else
			{
				m_strPt1 += m_strCt1[j] +  26 - m_iKey1;
			}
			
			
		}
		UpdateData(FALSE);
	}
}

void CCrptDlg::OnClearpt1() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	m_strPt1.Empty();
	UpdateData(FALSE);
}

void CCrptDlg::OnClearct1() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	m_strCt1.Empty();
	UpdateData(FALSE);
}

void CCrptDlg::OnMeth2() 
{
	// TODO: Add your control notification handler code here
	AfxMessageBox(" 仿射密碼介紹:\r 字母表用整數(shù)0 - 25來標(biāo)識, 密鑰對由a、b組成\r 整數(shù)a滿足 gcd(a, 26) = 1 \r 整數(shù)b的取值空間為0到25\r 加密函數(shù):x = ax + b(mod 26)\r 解密函數(shù):x = a*y - a*b (mod 26)\r 當(dāng)a=1,b=3時,為凱撒密碼\r 不識別空格", MB_ICONINFORMATION);
}

void CCrptDlg::OnKey2set() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	m_bJ2 = 1;
}

void CCrptDlg::OnE2() 
{
	// TODO: Add your control notification handler code here
	if (m_bJ2 == 0)
	{
		AfxMessageBox("請檢查是否設(shè)置了密鑰或輸入了明文");
	}
	else
	{
		UpdateData();
		int i = m_strPt2.GetLength();
		m_strCt2.Empty();		
		for (int j = 0; j < i; j++)
		{
			m_strCt2 += ((m_strPt2[j] - 97) * m_iKey2a + m_iKey2b) % 26 + 97;
			
		}
		UpdateData(FALSE);
	}
}

void CCrptDlg::OnD2() 
{
	// TODO: Add your control notification handler code here
	if (m_bJ2 == 0)
	{
		AfxMessageBox("請檢查是否設(shè)置了密鑰或輸入了密文");
	}
	else
	{
		UpdateData();
		int i = m_strCt2.GetLength();
		m_strPt2.Empty();		
		int a = transt(m_iKey2a);
	
		for (int j = 0; j < i; j++)
		{
			if (m_strCt2[j] - 97 - m_iKey2b < 0)
			{
				m_strPt2 += ((m_strCt2[j] - 97 - m_iKey2b) * a + 26) % 26 + 97;
			}
			else
			{
				m_strPt2 += ((m_strCt2[j] - 97 - m_iKey2b) * a) % 26 + 97;
			}
		}
		UpdateData(FALSE);
	}
}

void CCrptDlg::OnClearpt2() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	m_strPt2.Empty();
	UpdateData(FALSE);
}

void CCrptDlg::OnClearct2() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	m_strCt2.Empty();
	UpdateData(FALSE);
}

void CCrptDlg::OnMeth3() 
{
	// TODO: Add your control notification handler code here
	AfxMessageBox("維吉尼亞密碼介紹: \r 首先確定密鑰長度(本例中密鑰只采取個位數(shù)字,所以取決于輸入密鑰的長度)如6\r 然后輸入滿足這個長度的向量,如K = (1,2,3,4,5,6)\r 加密:取明文第一個字母并將之移k1位,這里k1=1,第二個字母移k2位,k2=2,一旦到了密鑰末尾,又從頭開始\r 不識別空格", MB_ICONINFORMATION);
}

void CCrptDlg::OnKey3set() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	m_bJ3 = 1;
}
void CCrptDlg::OnE3() 
{
	// TODO: Add your control notification handler code here
	if (m_bJ3 == 0)
	{
		AfxMessageBox("請檢查是否設(shè)置了密鑰或輸入了明文");
	}
	else
	{
		UpdateData();
		m_strCt3.Empty();
		int keylen = m_strKey3.GetLength();
		int ptlen = m_strPt3.GetLength();
		int i, j, m, n;

			i = ptlen / keylen;
			j = ptlen % keylen;
			for (n = 0; n < i; ++n)
			{
				for (m = 0; m < keylen; ++m)
				{
					if (m_strPt3[n * keylen + m] + m_strKey3[m] - 'a' > 'z')
					{
						m_strCt3 += m_strPt3[n * keylen + m] + m_strKey3[m] - 'a' - 26;
					}
					else
					{
						m_strCt3 += m_strPt3[n * keylen + m] + m_strKey3[m] - 'a';
					}
					
				}
			}
			for (m = 0; m < j; ++m)
			{
				if (m_strPt3[n * keylen + m] + m_strKey3[m] - 'a' > 'z')
					{
						m_strCt3 += m_strPt3[n * keylen + m] + m_strKey3[m] - 'a' - 26;
					}
					else
					{
						m_strCt3 += m_strPt3[n * keylen + m] + m_strKey3[m] - 'a';
					}
			}
		UpdateData(FALSE);
	}
}

void CCrptDlg::OnD3() 
{
	// TODO: Add your control notification handler code here
	if (m_bJ3 == 0)
	{
		AfxMessageBox("請檢查是否設(shè)置了密鑰或輸入了密文");
	}
	else
	{
		UpdateData();
	m_strPt3.Empty();
	int keylen = m_strKey3.GetLength();
	int ctlen = m_strCt3.GetLength();
	int i, j, m, n;
			
			i = ctlen / keylen;
			j = ctlen % keylen;
			for (n = 0; n < i; ++n)
			{
				for (m = 0; m < keylen; ++m)
				{
					if (m_strCt3[n * keylen + m] - m_strKey3[m] + 'a' < 'a')
					{
						m_strPt3 += m_strCt3[n * keylen + m] - m_strKey3[m] + 'a' + 26;
					}
					else
					{
						m_strPt3 += m_strCt3[n * keylen + m] - m_strKey3[m] + 'a';
					}
				}
			}
			for (m = 0; m < j; ++m)
			{
				if (m_strCt3[n * keylen + m] - m_strKey3[m] + 'a' < 'a')
					{
						m_strPt3 += m_strCt3[n * keylen + m] - m_strKey3[m] + 'a' + 26;
					}
					else
					{
						m_strPt3 += m_strCt3[n * keylen + m] - m_strKey3[m] + 'a';
					}
			}

	UpdateData(FALSE);
	}
}

void CCrptDlg::OnClearpt3() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	m_strPt3.Empty();
	UpdateData(FALSE);
}

void CCrptDlg::OnClearct3() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	m_strCt3.Empty();
	UpdateData(FALSE);
}

void CCrptDlg::OnMeth4() 
{
	// TODO: Add your control notification handler code here
	AfxMessageBox("換位密碼介紹:\r 確定密鑰長度,如5 \r 輸入長度為5的0到4的整數(shù)序列,如14032作為密鑰 \r 將明文分成每5個字母一組,每組字母按照密鑰進行換位\r 不識別空格", MB_ICONINFORMATION);
}

void CCrptDlg::OnKey4set() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	m_bJ4 = 1;
}

void CCrptDlg::OnE4() 
{
	// TODO: Add your control notification handler code here
	if (m_bJ4 == 0)
	{
		AfxMessageBox("請檢查是否設(shè)置了密鑰或輸入了明文");
	}
	else
	{
		UpdateData();
		m_strCt4.Empty();
		int keylen = m_strKey4.GetLength();
		int ptlen = m_strPt4.GetLength();
		int i = ptlen / keylen;
		int j = ptlen % keylen;
		if (0 != j)
		{
			for(int m = 0; m < keylen - j; ++m)
			{
				m_strPt4 += 'x';
			}
			i++;
		}
		
		int n, m, k;
		for (n = 0; n < i; ++n)
		{
			for (m = 0; m < keylen; ++m)
			{
				for (k = 0; k < keylen; ++k)
				{
					if (m_strKey4[k] == '0' + m)
					{
						m_strCt4 += m_strPt4[n * keylen + k];
					}
				}
			}
		}
		UpdateData(FALSE);
	}
}

void CCrptDlg::OnD4() 
{
	// TODO: Add your control notification handler code here
	if (m_bJ4 == 0)
	{
		AfxMessageBox("請檢查是否設(shè)置了密鑰或輸入了密文");
	}
	else
	{
		UpdateData();
		m_strPt4.Empty();
		int keylen = m_strKey4.GetLength();
		int ctlen = m_strCt4.GetLength();
		
		CString key;
		key.Empty();
		for (int e = 0; e < keylen; ++e)
		{
			for (int f = 0; f < keylen; ++f)
			{
				if (e == m_strKey4[f])
				{
					key += m_strKey4[f];
				}
			}
		}

		int i = ctlen / keylen;
		int j = ctlen % keylen;
		if (0 != j)
		{
			AfxMessageBox("請檢查密文格式是否正確");
		}
		
		else
		{
			int n, k;
			for (n = 0; n < i; ++n)
			{
				for (k = 0; k < keylen; ++k)
				{
					m_strPt4 += m_strCt4[n * keylen + m_strKey4[k] - '0'];
				}
			}		
		}
		UpdateData(FALSE);
	}
}

void CCrptDlg::OnClearpt4() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	m_strPt4.Empty();
	UpdateData(FALSE);
}

void CCrptDlg::OnClearct4() 
{
	// TODO: Add your control notification handler code here
	UpdateData();
	m_strCt4.Empty();
	UpdateData(FALSE);
}

int CCrptDlg::transt(int a)
{
	if (1 == a)
	{
		return 1;
	}
	else
	{
		int b, q, r, q0, x, x0, x1;
	    r = 1;
		b = 26;
		x1 = 1;
		x0 = 0;
		q0 = -1;
		while (0 != r)
		{
			q = b / a;
			r = b % a;
			x = q0 * (-1) * x0 + x1;
			q0 = q;
			x1 = x0;
			x0 = x;
			b = a;
			a = r;
		}
		return x;
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美激情一区二区在线| 国产精品自在欧美一区| 色香蕉久久蜜桃| 亚洲日本在线观看| 一本久久综合亚洲鲁鲁五月天| 亚洲免费三区一区二区| 欧美探花视频资源| 日本aⅴ精品一区二区三区| 91精品国产色综合久久| 国产在线观看一区二区| 国产精品青草综合久久久久99| 91性感美女视频| 亚洲二区在线视频| 一区二区成人在线| 在线视频综合导航| 六月婷婷色综合| 国产视频一区二区在线| 91啦中文在线观看| 另类中文字幕网| 国产精品久久免费看| 欧美亚洲综合在线| 久久国产麻豆精品| 中文字幕亚洲不卡| 日韩精品在线网站| caoporn国产一区二区| 日韩高清一级片| 中文字幕av一区二区三区| 欧美色综合网站| 国产高清在线精品| 亚洲超碰精品一区二区| 国产欧美日韩综合精品一区二区 | 欧美一区二区三区四区久久 | 中文字幕不卡在线播放| 在线观看一区不卡| 国产一区在线观看麻豆| 亚洲成在线观看| 久久精品亚洲精品国产欧美kt∨ | 蜜臀av一区二区| 国产精品久久久久久久岛一牛影视 | 日韩高清一级片| 中文字幕永久在线不卡| 91精品免费在线观看| 91一区在线观看| 韩国欧美国产1区| 亚洲aaa精品| 亚洲欧美激情视频在线观看一区二区三区| 91麻豆精品国产91久久久久久| 白白色 亚洲乱淫| 韩国av一区二区三区四区| 亚洲第一主播视频| 亚洲特黄一级片| 国产欧美综合在线观看第十页| 制服丝袜国产精品| 在线一区二区三区四区五区| 成人一区二区三区视频| 久热成人在线视频| 日韩成人免费电影| 亚洲一区在线看| 亚洲人成亚洲人成在线观看图片| 久久综合五月天婷婷伊人| 777色狠狠一区二区三区| 91国内精品野花午夜精品| 成人晚上爱看视频| 国产福利一区二区三区在线视频| 日韩国产一二三区| 日韩在线一区二区| 午夜电影网一区| 亚洲国产一区视频| 亚洲线精品一区二区三区| 亚洲品质自拍视频网站| 日韩美女视频19| 亚洲素人一区二区| 亚洲视频图片小说| 亚洲私人影院在线观看| 亚洲狠狠丁香婷婷综合久久久| 中文字幕欧美日本乱码一线二线| 国产日韩欧美激情| 亚洲国产经典视频| 国产精品人人做人人爽人人添| 中文字幕国产一区二区| 国产精品欧美久久久久一区二区| 国产区在线观看成人精品| 国产日韩一级二级三级| 中文字幕一区二区在线播放| 国产精品二三区| 亚洲免费在线观看视频| 午夜欧美电影在线观看| 视频一区在线视频| 久久av中文字幕片| 从欧美一区二区三区| 99久久国产综合精品色伊| 99久久99久久综合| 欧美三级日本三级少妇99| 欧美精品乱码久久久久久| 日韩欧美你懂的| 久久久久久电影| 一区二区三区四区中文字幕| 亚洲一区二区视频在线| 另类的小说在线视频另类成人小视频在线| 日本视频免费一区| 国产成人精品影视| 色呦呦国产精品| 91 com成人网| 日本一区二区综合亚洲| 亚洲天堂av老司机| 老司机午夜精品| 不卡一区中文字幕| 欧美精品xxxxbbbb| 国产日韩欧美在线一区| 一区二区三区四区在线播放| 蜜桃av噜噜一区| 91丝袜高跟美女视频| 欧美一激情一区二区三区| 国产日韩精品一区二区三区在线| 亚洲女性喷水在线观看一区| 偷拍亚洲欧洲综合| 成人激情免费视频| 538在线一区二区精品国产| 久久久久成人黄色影片| 一区二区三区高清| 国产综合一区二区| 欧美视频在线观看一区| 国产欧美一区二区精品婷婷| 亚洲成人一二三| 成人性生交大片免费看视频在线| 欧美性受xxxx黑人xyx性爽| 欧美精品一区二区三区很污很色的| 2020国产精品自拍| 五月婷婷欧美视频| 亚洲欧洲中文日韩久久av乱码| 午夜视频在线观看一区二区| 成人黄色在线网站| 91精品国产色综合久久ai换脸| 亚洲日本成人在线观看| 久久91精品久久久久久秒播| 欧美性大战xxxxx久久久| 国产精品美女久久久久久久| 秋霞午夜av一区二区三区| 91社区在线播放| 久久亚洲二区三区| 美女看a上一区| 欧美日韩电影一区| 亚洲精品视频观看| av激情成人网| 国产婷婷色一区二区三区 | 亚洲国产一区视频| 99久久精品免费精品国产| 久久色成人在线| 免费成人小视频| 欧美福利视频一区| 亚洲国产一二三| 色综合中文字幕国产| 国产麻豆精品在线观看| 欧美日韩精品三区| 亚洲一二三区不卡| 欧美亚洲精品一区| 亚洲欧美日韩国产另类专区 | 91在线精品秘密一区二区| 国产婷婷色一区二区三区在线| 狠狠久久亚洲欧美| 欧美一级片在线| 美女一区二区三区| 日韩免费高清电影| 久久超碰97中文字幕| 欧美电影免费观看高清完整版在线观看| 性做久久久久久| 欧美精品自拍偷拍| 日韩av不卡一区二区| 91精品国产综合久久久久久| 日本亚洲电影天堂| 日韩小视频在线观看专区| 日韩avvvv在线播放| 日韩免费一区二区| 国产自产2019最新不卡| 亚洲精品一线二线三线 | 波多野结衣中文一区| 国产精品久久久久久久岛一牛影视| 99久久777色| 一区二区三区四区中文字幕| 欧美酷刑日本凌虐凌虐| 美女一区二区视频| 国产欧美日韩一区二区三区在线观看| 国产成+人+日韩+欧美+亚洲| 中文字幕在线一区| 欧美视频一区二区在线观看| 免费观看30秒视频久久| 久久精品人人做人人爽97| 成人午夜看片网址| 一区二区成人在线视频| 日韩一卡二卡三卡| 国产一区二区调教| 亚洲日本va在线观看| 欧美日韩亚洲综合在线| 久久精品国产久精国产| 国产精品视频在线看| 欧美综合视频在线观看| 久久丁香综合五月国产三级网站 | 欧美丰满美乳xxx高潮www| 精品一二三四在线| 亚洲人快播电影网|