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

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

?? coderdefine.cpp

?? 這是一個基于openssl庫的對文件進行加密和數字簽名的軟件
?? CPP
字號:
#include "EDcode2.h"

//-------------------------------------------------------
EDcoder::EDcoder()
{
	en_sfp=NULL;
	en_ofp=NULL;
	de_sfp=NULL;
	de_ofp=NULL;
}

EDcoder::~EDcoder()
{
	if(en_sfp!=NULL)
	{
		fclose(en_sfp);
		en_sfp=NULL;
	}
	
	if(en_ofp!=NULL)
	{
		fclose(en_ofp);
		en_ofp=NULL;
	}

	if(de_sfp!=NULL)
	{
		fclose(de_sfp);
		de_sfp=NULL;
	}
	
	if(de_ofp!=NULL)
	{
		fclose(de_ofp);
		de_ofp=NULL;
	}
}

bool EDcoder::Open_en_sfp(char *filename)
{
	en_sfp=fopen(filename,"rb");
	if(en_sfp==NULL)
	    return false;
	return true;
}

bool EDcoder::Open_en_ofp(char *filename)
{
	en_ofp=fopen(filename,"wb");
	if(en_ofp==NULL)
		return false;
	return true;
}

bool EDcoder::Open_de_sfp(char *filename)
{
	de_sfp=fopen(filename,"rb");
	if(de_sfp==NULL)
	    return false;
	return true;
}

bool EDcoder::Open_de_ofp(char *filename)
{
	de_ofp=fopen(filename,"wb+rb");
	if(de_ofp==NULL)
		return false;
	return true;
}

bool EDcoder::Open_user_prikey(char *filename) // 打開用戶私鑰文件
{
	user_prikey=fopen(filename,"rb");
	if(user_prikey==NULL)
		return false;
	return true;
}

bool EDcoder::Open_user_pubkey(char *filename) // 打開用戶公鑰文件
{
	user_pubkey=fopen(filename,"rb");
	if(user_pubkey==NULL)
		return false;
	return true;
}

bool EDcoder::Open_server_prikey(char *filename) // 打開服務器私鑰文件
{
	server_prikey=fopen(filename,"rb");
	if(server_prikey==NULL)
		return false;
	return true;
}

bool EDcoder::Open_server_pubkey(char *filename) // 打開服務器公鑰文件
{
	server_pubkey=fopen(filename,"rb");
	if(server_pubkey==NULL)
		return false;
	return true;
}

void EDcoder::Gen_md5_sum(FILE *fp)
{
	char buf[BUFLEN];
	int read_len,total_read_len=0;
	int filelen;
	
	MD5_CTX md5_ctx;
    MD5_Init(&md5_ctx);

	fseek(fp,0,2);
	filelen=ftell(fp);

	fseek(fp,0,0);
	while(1)
	{    
	 read_len=fread(buf,1,BUFLEN,fp);
	 total_read_len+=read_len;
	 if(read_len==BUFLEN)
         MD5_Update(&md5_ctx,buf,BUFLEN);
	 else
	 {    
		 MD5_Update(&md5_ctx,buf,read_len); 
	     break;
	 }
     
    }
	MD5_Final(MD5_sum,&md5_ctx); //最終生成MD5校驗碼到MD5_sum

    //cout<<filelen<<endl;
	// 假如讀文件長度跟文件本身長度不同就退出
	if(total_read_len!=filelen)
	{
		cout<<"MD5 校驗碼階段讀文件錯誤!"<<endl;
		cout<<filelen<<" "<<total_read_len<<endl;
		return;
	}
    
	cout<<"MD5校驗碼生成"<<endl;

}

void EDcoder::Print_MD5()
{
	// 打印MD5校驗碼
	cout<<"MD5 sum code is: "; 
	for(int i=0;i<16;i++)
	{
		cout<<hex<<(int)(MD5_sum[i]>>4);
		cout<<hex<<(int)(MD5_sum[i]%16);
	}
	cout<<endl;
}

void EDcoder::Gen_3des()
{
	/* --- 生成Des隨即密鑰 --- */
    if(RAND_status()!=1)
	{
		cout<<"PRNG引擎不工作了!"<<endl;
		return;
	}

	time_t t;
	srand((unsigned)time(&t));

    //_ossl_old_des_cblock key;
    //des_random_key(&key); 這個舊的東西沒問題,不過這里不合適

    DES_cblock key1,key2,key3; //三重鑰匙

    int result1,result2,result3;
	// 問題:三個生成的密鑰一樣,考慮修改隨機生成器
	result1 = DES_random_key(&key1); 
    result2 = DES_random_key(&key2);
	result3 = DES_random_key(&key3);

	/*----------------------------------
	有毛病的寫法:
	DES_cblock *key = NULL;
    int result = DES_random_key(key);
	不能用指針的
      ----------------------------------*/

	if(result1==0||result2==0||result3==0)
		cout<<"3DES密鑰生成錯誤!"<<endl;
	else
        cout<<"3DES密鑰生成!"<<endl;

	char *tmp_key=(char*)&key1;
	for(int i=0;i<8;i++)
		this->DES_key[i]=tmp_key[i];

	tmp_key=(char*)&key2;
	for(i=8;i<16;i++)
		this->DES_key[i]=tmp_key[i]+(rand()%20);

	tmp_key=(char*)&key3;
	for(i=16;i<24;i++)
		this->DES_key[i]=tmp_key[i]+(rand()%30);

	//DES_key[24]='\0';

    /* --- 生成Des隨即密鑰 --- */
}

void EDcoder::Print_3DES()
{
	cout<<"The size of 3DES key is: "<<sizeof(DES_key)<<endl;
    cout<<"The 3DES key is: "<<endl;
	for(int i=0;i<8;i++)
		cout<<dec<<(int)this->DES_key[i]<<" ";
	cout<<endl;

	for(i=8;i<16;i++)
	    cout<<dec<<(int)this->DES_key[i]<<" ";
	cout<<endl;

	for(i=16;i<24;i++)
	    cout<<dec<<(int)this->DES_key[i]<<" ";
	cout<<endl;
}

int EDcoder::Des_encrypt()
{
	EVP_CIPHER_CTX des_ctx;
    EVP_CIPHER * type;

    //unsigned char workvec[10000]; 向量好像無用
    unsigned char enc_data[2000]; // 加密后的緩沖
	unsigned char data[BUFLEN];

    long encryptedLength = 0;
    int elen=0;

    type = (EVP_CIPHER*)EVP_des_ede3_cbc();  // 初始化EVP_CIPHER結構
    EVP_CIPHER_CTX_init(&des_ctx);  // 初始化EVP_CIPHER_CTX結構

    if(EVP_CipherInit(&des_ctx, type, (unsigned char*)&DES_key, NULL, 1)==0) // 1是加密
    {
        cout<<"EVP_CipherInit error"<<endl;
        return 0;
    }

    /*add encrypted data */
	//cout<<"Begin 3DES encrypt"<<endl;
	int size_read;
	
	//unsigned char *data=new unsigned char[BUFLEN];
	//unsigned char *enc_data=new unsigned char[BUFLEN];
	fseek(en_sfp,0,0);
	do
	{    
	 size_read=fread(data,1,BUFLEN,en_sfp);
	 
	 if(size_read==0)
		 break;

     if(EVP_CipherUpdate(&des_ctx, enc_data, &elen, data, size_read)==0) // 從data讀出,加密到enc_data
     {
         cout<<"EVP_CipherUpdate error"<<endl;
         return 0;
     }

	 encryptedLength += elen;

     fwrite(enc_data, 1, elen, en_ofp);    
    }while(size_read==BUFLEN);
	
    EVP_CipherFinal(&des_ctx, enc_data, &elen);
    encryptedLength += elen;
    fwrite(enc_data, 1, elen,en_ofp);
    EVP_CIPHER_CTX_cleanup(&des_ctx);


	return encryptedLength;

}

int EDcoder::Des_decrypt(int filelen)
{
	EVP_CIPHER_CTX des_ctx;
    EVP_CIPHER * type;

    //unsigned char workvec[10000]; 向量好像無用
    unsigned char dec_data[2000]; // 解密后的緩沖
	unsigned char data[BUFLEN];

    long decryptedLength = 0;
    int elen=0;

    type = (EVP_CIPHER*)EVP_des_ede3_cbc();  // 初始化EVP_CIPHER結構
    EVP_CIPHER_CTX_init(&des_ctx);  // 初始化EVP_CIPHER_CTX結構

    if(EVP_CipherInit(&des_ctx, type, DES_key, NULL, 0)==0) // 0是解密,1是加密
    {
        cout<<"EVP_CipherInit error"<<endl;
        return 0;
    }

    /*add encrypted data */
	//cout<<"Begin 3DES encrypt"<<endl;
	int size_read;
	int count=0;
	
	//unsigned char *data=new unsigned char[BUFLEN];
	//unsigned char *enc_data=new unsigned char[BUFLEN];
	
	do
	{    
	 size_read=fread(data,1,BUFLEN,de_sfp);
	 
	 if(size_read==0)
		 break;

     if(EVP_CipherUpdate(&des_ctx, dec_data, &elen, data, size_read)==0) // 從data讀出,解密到enc_data
     {
         cout<<"EVP_CipherUpdate error"<<endl;
         return 0;
     }

	 decryptedLength += elen;

     fwrite(dec_data, 1, elen, de_ofp); 
    }while(size_read==BUFLEN);
	
    EVP_CipherFinal(&des_ctx, dec_data, &elen);
    decryptedLength += elen;
	//cout<<decryptedLength<<endl;
	//cout<<filelen<<endl;
    fwrite(dec_data, 1, elen,de_ofp);

    EVP_CIPHER_CTX_cleanup(&des_ctx);


	return decryptedLength;
}

void EDcoder::Gen_rsa(char *filename1,char *filename2)
{
	RSA *key=NULL;

	int e=17;
    //生成RSA密鑰對
    key=RSA_generate_key(1024,RSA_F4,NULL,NULL); // RSA_F4=65537

    //保存私鑰文件
    FILE *fp1= fopen(filename1,"wb"); //filename和下面的filename2都是經過驗證正確的文件路徑名。
    if(fp1==NULL)
    {
      cout<<"創建私鑰文件錯誤"<<endl; // 203117.pri.key
      return;
    }

    PEM_write_RSAPrivateKey(fp1, key, NULL, NULL, 0, NULL, NULL);
    fclose(fp1);

    //保存公鑰文件
    FILE *fp2= fopen(filename2,"wb");
    if(fp2==NULL)
    {
      cout<<"創建公鑰文件錯誤"<<endl; // 203117.pub.key 
      return;
    }
    PEM_write_RSAPublicKey(fp2, key);
    fclose(fp2);
}

void EDcoder::Init_prikey(FILE *fp)
{
	pri_rsa=PEM_read_RSAPrivateKey(fp,NULL,NULL,NULL);
}

void EDcoder::Init_pubkey(FILE *fp)
{
	pub_rsa=PEM_read_RSAPublicKey(fp,NULL,NULL,NULL);
}

int EDcoder::Encrypt(char *srcfile,char *destfile)  // 總加密
{
	unsigned int filelen=0;

	// 1,讀取文件,得到數據和數據長度
	if(!Open_en_sfp(srcfile))
		return 1;
	if(!Open_en_ofp(destfile))
		return 2;

	fseek(en_sfp,0,2);
	filelen=ftell(en_sfp);


	// 2,產生MD5校驗碼
    this->Gen_md5_sum(this->en_sfp);
    //this->Print_MD5();
	
	// 3,生成3DES密鑰,加密原文放到后面
	this->Gen_3des();
	//this->Print_3DES();

	// 4,拼接3DES密鑰和MD5校驗碼,使用用戶的RSA私鑰加密,得到“簽名”
	//    3DES和MD5校驗碼總長為24+16=40 Bytes
	//    加密后的簽名應該為128 Bytes
	for(int i=0;i<24;i++)
		MergeKey[i]=DES_key[i];

	for(i=0;i<16;i++)
		MergeKey[i+24]=MD5_sum[i];

	/* 輸出3des和md5合成的字串
	cout<<"MergeKey is:"<<endl;
	for(i=0;i<40;i++)
	    cout<<dec<<(int)MergeKey[i]<<" ";
	cout<<endl;
	*/

	//測試:RSA *mykey=RSA_generate_key(1024,RSA_F4,NULL,NULL); // RSA_F4 is 65537
	this->Init_prikey(user_prikey);	
    int result=RSA_private_encrypt(40,MergeKey,Sign,pri_rsa,RSA_PKCS1_PADDING);
    if(result<0)
		return 3;

	/* 輸出用用戶私鑰加密后的《簽名》
	cout<<"Sign is:"<<endl;
	for(i=0;i<128;i++)
	    cout<<dec<<(int)Sign[i]<<" ";
	cout<<endl;
    */

	/* 測試能否用自己的公鑰解密 */
	/*
	this->Init_pubkey("203117.pub.key");
    result=RSA_public_decrypt(RSA_size(pub_rsa),Sign,MergeKey,pub_rsa,RSA_PKCS1_PADDING);
	cout<<"pub_rsa size is "<<RSA_size(pub_rsa)<<endl;
    if(result<0)
		return 4;

	cout<<"MergeKey is:"<<endl;
	for(i=0;i<40;i++)
	    cout<<dec<<(int)MergeKey[i]<<" ";
	cout<<endl;
    測試通過 
	*/

    // 5,把簽名分開2份,每份64字節,然后用服務器公鑰分別加密,合并得到“加密簽名”
    unsigned char tmpsign1[64],tmpsign2[64];
	unsigned char tmp_ensign1[128],tmp_ensign2[128];

	for(i=0;i<64;i++)
	{
		tmpsign1[i]=Sign[i];
		tmpsign2[i]=Sign[64+i];
	}

    this->Init_pubkey(server_pubkey);

    result=RSA_public_encrypt(64,tmpsign1,tmp_ensign1,pub_rsa,RSA_PKCS1_PADDING);
	//cout<<"step 5 result is "<<result<<endl;
    if(result<0)
		return 5;

    result=RSA_public_encrypt(64,tmpsign2,tmp_ensign2,pub_rsa,RSA_PKCS1_PADDING);
	//cout<<"step 6 result is "<<result<<endl;
    if(result<0)
		return 6;  
	
	for(i=0;i<128;i++)
		enSign[i]=tmp_ensign1[i];
	for(i=0;i<128;i++)
		enSign[i+128]=tmp_ensign2[i];

	// 6,往目標文件寫入數據長度
    if(fwrite(&filelen,1,4,this->en_ofp)!=4)
		return 7;

	// 7,往目標文件寫入加密簽名
	if(fwrite(enSign,1,256,this->en_ofp)!=256)
		return 8;

    // 8,往目標文件寫入密文
	if(this->Des_encrypt()<=0)
		return 9;

	return 0;
}

int EDcoder::Decrypt(char *srcfile,char *destfile)  // 總解密
{
	int filelen;
    int result;

    //cout<<"now is step1"<<endl;
	// 1,讀取文件,得到數據長度,加密簽名,密文稍后讀取
	if(!Open_de_sfp(srcfile))
		return 1;
	if(!Open_de_ofp(destfile))
		return 2;

	if(fread(&filelen,1,4,this->de_sfp)!=4)
		return 3;
	//cout<<"filelen is "<<filelen<<endl;

    if(fread(this->enSign,1,256,this->de_sfp)!=256)
		return 4;
    
	//cout<<"now is step2"<<endl;
	// 2,用服務器私鑰對加密簽名進行解密,得到簽名
    this->Init_prikey(server_prikey);
    
    unsigned char tmpsign1[64],tmpsign2[64];
	unsigned char tmp_ensign1[128],tmp_ensign2[128];

    fseek(this->de_sfp,4,0);
	fread(tmp_ensign1,1,128,this->de_sfp);
	fread(tmp_ensign2,1,128,this->de_sfp);

    result=RSA_private_decrypt(RSA_size(pri_rsa),tmp_ensign1,tmpsign1,pri_rsa,RSA_PKCS1_PADDING);
	//cout<<"pri_rsa size is "<<RSA_size(pri_rsa)<<endl;
    if(result<0)
		return 5;

	result=RSA_private_decrypt(RSA_size(pri_rsa),tmp_ensign2,tmpsign2,pri_rsa,RSA_PKCS1_PADDING);
	if(result<0)
		return 6;

    //cout<<"now is step3"<<endl;
    // 3,用用戶公鑰對簽名進行解密,得到3DES密鑰和MD5校驗碼拼接碼
    for(int i=0;i<64;i++)
		Sign[i]=tmpsign1[i];
	for(i=64;i<128;i++)
		Sign[i]=tmpsign2[i-64];

	/*
	cout<<"Sign is:"<<endl;
	for(i=0;i<128;i++)
	    cout<<dec<<(int)Sign[i]<<" ";
	cout<<endl;
    */

    this->Init_pubkey(user_pubkey);
	result=RSA_public_decrypt(RSA_size(pub_rsa),Sign,MergeKey,pub_rsa,RSA_PKCS1_PADDING);
	//cout<<"step7 result is "<<result<<endl;
	if(result<0)
		return 7;

	/*
	cout<<"MergeKey is:"<<endl;
	for(i=0;i<40;i++)
	    cout<<dec<<(int)MergeKey[i]<<" ";
	cout<<endl;
    */

	unsigned char tmp_MD5_sum[16];
	for(i=0;i<24;i++)
		this->DES_key[i]=MergeKey[i];
	for(i=24;i<40;i++)
		tmp_MD5_sum[i-24]=MergeKey[i];
    
    //this->Print_3DES();
    /*
	cout<<"tmp_MD5_sum code is: "; 
	for(i=0;i<16;i++)
	{
		cout<<hex<<(int)(tmp_MD5_sum[i]>>4);
		cout<<hex<<(int)(tmp_MD5_sum[i]%16);
	}
	cout<<endl;
    */
    
	//cout<<"now is step4"<<endl;
	// 4,用3DES密鑰解密,得到解密文
	fseek(this->de_sfp,260,0);
	result=this->Des_decrypt(filelen);
	if(result<=0)
		return 8;

    //cout<<"now is step5"<<endl;
    // 5,讀取解密文,進行MD5校驗
	this->Gen_md5_sum(this->de_ofp);

    //cout<<"now is step6"<<endl;
    // 6,比較tmp_MD5_sum和MD5_sum,若一樣,就確定解密文為原文;若不同就刪除解密文,并返回錯誤
	result=1;
	for(i=0;i<16;i++)
	{
		if(tmp_MD5_sum[i]!=this->MD5_sum[i])
		{
			result=0;
			break;
		}
	}

	if(result!=1)
	{
		//this->Print_MD5();
		remove(destfile);
		return 9;
	}


	return 0;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美妇女性影城| 亚洲自拍都市欧美小说| 椎名由奈av一区二区三区| 亚洲一区成人在线| 粉嫩蜜臀av国产精品网站| 91麻豆精品国产91久久久久久久久| 国产欧美日韩精品a在线观看| 五月婷婷久久丁香| 99riav久久精品riav| 26uuu亚洲婷婷狠狠天堂| 亚洲一区二区三区美女| 99精品欧美一区| 久久综合九色综合欧美就去吻 | 亚洲一区二区av在线| 国产成人综合视频| 精品福利二区三区| 日韩国产在线观看一区| 日本久久电影网| 国产精品国产三级国产a| 国产精品一区在线| 久久综合九色综合97_久久久| 青青青伊人色综合久久| 欧美日韩色一区| 亚洲国产中文字幕在线视频综合| 不卡视频一二三四| 国产精品超碰97尤物18| 国产·精品毛片| 中文字幕免费不卡在线| 国产成人综合网站| 国产欧美日韩在线视频| 国产成人8x视频一区二区| 精品av久久707| 国产一区在线观看视频| 亚洲精品一区二区三区精华液| 伦理电影国产精品| 精品久久久久久亚洲综合网| 狠狠色综合色综合网络| 久久蜜桃一区二区| 国产91丝袜在线18| 中文字幕一区二区三区在线不卡| heyzo一本久久综合| **网站欧美大片在线观看| 99re热视频精品| 亚洲国产精品欧美一二99| 在线成人av影院| 精品一区二区三区的国产在线播放| 久久只精品国产| 懂色av一区二区三区免费观看| 自拍偷自拍亚洲精品播放| 99热这里都是精品| 亚洲国产精品欧美一二99| 91精品综合久久久久久| 国产另类ts人妖一区二区| 中文成人综合网| 欧美亚洲国产一区在线观看网站| 奇米综合一区二区三区精品视频| 久久免费的精品国产v∧| 99re成人在线| 免费看日韩a级影片| 国产亚洲福利社区一区| 色8久久精品久久久久久蜜| 天天综合色天天综合| 久久伊99综合婷婷久久伊| 99这里都是精品| 日本麻豆一区二区三区视频| 国产欧美日韩亚州综合 | 在线免费视频一区二区| 亚洲va国产va欧美va观看| 久久综合一区二区| 日本久久精品电影| 精品一区二区三区免费视频| 亚洲三级在线播放| 欧美成人女星排名| 日本久久一区二区三区| 国模冰冰炮一区二区| 一区二区成人在线观看| 精品粉嫩aⅴ一区二区三区四区| 91天堂素人约啪| 久久超碰97人人做人人爱| 亚洲天堂a在线| 久久久久久电影| 欧美丰满高潮xxxx喷水动漫| 成人丝袜视频网| 男女视频一区二区| 亚洲日本成人在线观看| 精品久久久久久久久久久久包黑料| 色综合夜色一区| 成人免费高清视频在线观看| 午夜在线电影亚洲一区| 中文字幕在线播放不卡一区| 欧美大片免费久久精品三p| 91麻豆免费视频| 国产精品一区二区在线播放| 免费在线一区观看| 天堂av在线一区| 亚洲黄色尤物视频| 国产精品不卡一区| 中文字幕不卡在线播放| 精品国产乱码久久久久久图片 | 中文字幕一区二区三中文字幕| 日韩一二在线观看| 欧美精品一级二级| 欧美图区在线视频| 色狠狠一区二区| 色综合久久久久综合99| 成人免费福利片| 从欧美一区二区三区| 国产成a人亚洲精品| 国产一区二区精品久久91| 久久成人av少妇免费| 免费看精品久久片| 免费av网站大全久久| 丝袜脚交一区二区| 人人狠狠综合久久亚洲| 日本aⅴ精品一区二区三区| 丝袜美腿一区二区三区| 日本三级韩国三级欧美三级| 亚洲成人精品一区| 午夜精品久久久久久久久| 亚洲图片欧美视频| 日韩有码一区二区三区| 日韩中文字幕不卡| 久久成人麻豆午夜电影| 国产在线精品一区二区三区不卡| 国产一区二区三区香蕉| 国产传媒欧美日韩成人| 成人激情综合网站| 色呦呦一区二区三区| 欧美视频在线观看一区| 欧美肥妇free| 欧美精品一区二区精品网| 欧美韩国日本不卡| 亚洲精品国产精华液| 偷偷要91色婷婷| 激情欧美一区二区三区在线观看| 国产精品12区| 欧美绝品在线观看成人午夜影视| 这里是久久伊人| 精品国产精品一区二区夜夜嗨| 久久精品人人爽人人爽| 国产精品视频免费| 亚洲国产中文字幕在线视频综合| 日韩精品一卡二卡三卡四卡无卡| 精品亚洲国内自在自线福利| 成人午夜在线播放| 91麻豆国产在线观看| 欧美疯狂性受xxxxx喷水图片| 亚洲欧洲日韩av| 天天综合日日夜夜精品| 国产一区二区电影| 精品视频资源站| 久久久五月婷婷| 尤物视频一区二区| 精品写真视频在线观看| 日本韩国精品一区二区在线观看| 欧美一级欧美三级| 中文字幕一区二区不卡| 日欧美一区二区| 成人av网址在线观看| 7777精品伊人久久久大香线蕉的 | 高清不卡一区二区| 欧美性xxxxxxxx| 国产欧美精品一区aⅴ影院| 亚洲va韩国va欧美va精品| 成人网男人的天堂| 日韩一区二区免费电影| 亚洲人成7777| 国产成人精品一区二区三区网站观看 | 亚洲精品国产一区二区三区四区在线| 婷婷综合另类小说色区| www.视频一区| 精品久久久久久久久久久久久久久 | 日韩国产欧美三级| 色婷婷久久久亚洲一区二区三区 | 色悠久久久久综合欧美99| 精品国产制服丝袜高跟| 香蕉成人伊视频在线观看| 波多野结衣亚洲| 国产视频视频一区| 久久精品99国产精品日本| 欧美日韩在线免费视频| 中文字幕一区二区三| 国产成人无遮挡在线视频| 日韩欧美国产小视频| 午夜久久电影网| 91国产免费观看| 亚洲激情网站免费观看| hitomi一区二区三区精品| 日本一区二区在线不卡| 国内精品不卡在线| 久久综合九色欧美综合狠狠| 美女爽到高潮91| 欧美xfplay| 久久精品二区亚洲w码| 欧美成人三级在线| 久久99久久久久| 精品久久久久久久久久久久久久久久久| 日韩在线一区二区| 欧美哺乳videos| 国产一区二区影院|