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

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

?? criptview.cpp

?? 一個加解密程序
?? CPP
字號:
// criptView.cpp : implementation of the CCriptView class
//

#include "stdafx.h"
#include "cript.h"

#include "criptDoc.h"
#include "criptView.h"
#include "substitute.h"
#include "setsystem.h"
#include "SetKey.h"
#include "Key_vige.h"
#include "DES.h"
#include "var.h"

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

/////////////////////////////////////////////////////////////////////////////
// CCriptView

IMPLEMENT_DYNCREATE(CCriptView, CView)

BEGIN_MESSAGE_MAP(CCriptView, CView)
	//{{AFX_MSG_MAP(CCriptView)
	ON_COMMAND(ID_TEST, OnTest)
	ON_COMMAND(ID_SETKEYM, OnSetkeym)
	ON_COMMAND(ID_DSF, OnDsf)
	ON_COMMAND(ID_ESF, OnEsf)
	ON_COMMAND(ID_VIGE, OnVige)
	ON_COMMAND(ID_MENUSetCaesaKey, OnSetCaesaKey)
	ON_COMMAND(ID_MENUSetVigenereKey, OnSetVigenereKey)
	ON_COMMAND(ID_MENUSetDESKey, OnSetDESKey)
	ON_COMMAND(ID_MENUSetRSAKey, OnSetRSAKey)
	//}}AFX_MSG_MAP
	// Standard printing commands
	ON_COMMAND(ID_FILE_PRINT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CView::OnFilePrintPreview)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CCriptView construction/destruction

CCriptView::CCriptView()
{
	// TODO: add construction code here
	m_key=73;
}

CCriptView::~CCriptView()
{
}

BOOL CCriptView::PreCreateWindow(CREATESTRUCT& cs)
{
	// TODO: Modify the Window class or styles here by modifying
	//  the CREATESTRUCT cs

	return CView::PreCreateWindow(cs);
}

/////////////////////////////////////////////////////////////////////////////
// CCriptView drawing

void CCriptView::OnDraw(CDC* pDC)
{
	CCriptDoc* pDoc = GetDocument();
	ASSERT_VALID(pDoc);
	// TODO: add draw code for native data here
}

/////////////////////////////////////////////////////////////////////////////
// CCriptView printing

BOOL CCriptView::OnPreparePrinting(CPrintInfo* pInfo)
{
	// default preparation
	return DoPreparePrinting(pInfo);
}

void CCriptView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add extra initialization before printing
}

void CCriptView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
	// TODO: add cleanup after printing
}

/////////////////////////////////////////////////////////////////////////////
// CCriptView diagnostics

#ifdef _DEBUG
void CCriptView::AssertValid() const
{
	CView::AssertValid();
}

void CCriptView::Dump(CDumpContext& dc) const
{
	CView::Dump(dc);
}

CCriptDoc* CCriptView::GetDocument() // non-debug version is inline
{
	ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CCriptDoc)));
	return (CCriptDoc*)m_pDocument;
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// CCriptView message handlers

void CCriptView::OnTest() 
{
	CClientDC *pDC=new CClientDC(this);
//	pDC=new CClientDC(this);
	TEXTMETRIC ptm;
	pDC->GetOutputTextMetrics(&ptm);
	int x,y;
	long lh=ptm.tmHeight;
	CString s;

	char k[]="codecyc";
	char m[]= "abcdefghijklmnopqrstuvwxyz";
	char c[]= "012345678901234567890123456789";
	char m1[]="012345678901234567890123456789";
	x=0,y=0;
	s.Format("m = '%s'",m);
	pDC->TextOut(x,y,s);
	m2c_p(m,c,k,25);
	s.Format("c = '%s'",c);
	pDC->TextOut(x,y+=lh,s);
	c2m_p(c,m1,k,25);
	s.Format("m1 = '%s'",m1);
	pDC->TextOut(x,y+=lh,s);

/*	BYTE m,c,k;
	m='A'; k=32;
	m2c(m,c,k);
	x=0,y=0;
	s.Format("c = '%c'",c);
	pDC->TextOut(x,y,s);
	c2m(c,m,k);
	s.Format("m = '%c'",m);
	pDC->TextOut(x,y+=lh,s);

	int mi,ci;
	mi=543; k=32;
	m2c(mi,ci,k);
	s.Format("ci = '%d'",ci);
	pDC->TextOut(x,y+=lh,s);
	c2m(ci,mi,k);
	s.Format("mi = '%d'",mi);
	pDC->TextOut(x,y+=lh,s);
*/
	delete(pDC);
	
}

void CCriptView::OnSetkeym() 
{
	SetKey dlg;
	if(dlg.DoModal()==IDOK)
	{
	
	    m_key=dlg.m_key%256;
		Disply_V();
	}
}

void CCriptView::Disply_V()
{
	CClientDC *pDC=new CClientDC(this);
	TEXTMETRIC ptm;
	pDC->GetOutputTextMetrics(&ptm);
	int x,y;
	long lh=ptm.tmHeight;
	CString s;
	s.Format("key=%u",m_key);
	x=0,y=0;
	pDC->TextOut(x,y,s);
//	pDC->TextOut(x,y+=lh,m_key_vige);
//	s.Format("key_vige length=%u",m_key_vige.GetLength());
//	pDC->TextOut(x,y+=lh,s);
//	char *ks=m_key_vige.GetBuffer(m_key_vige.GetLength());
//	s.Format("key=%send",ks);
//	pDC->TextOut(x,y+=lh,s);

	delete(pDC);

}

void CCriptView::OnDsf() 
{
	switch(criptType)
	{
		case CAESA:		DSFCaesar();break;
		case VIGENERE:	DSFvige();break;
		case DES:		DSF_DES();break;
		case DES_3:		DSF_3DES();break;
		case RSA:		DSF_RSA();break;
	}
	MessageBox("解密完畢");
}

void CCriptView::OnEsf() 
{
	switch(criptType)
	{
		case CAESA:		ESFCaesar();break;
		case VIGENERE:	ESFvige();break;
		case DES:		ESF_DES();break;
		case DES_3:		ESF_3DES();break;
		case RSA:		ESF_RSA();break;
	}
	MessageBox("加密完畢");
}

void CCriptView::ESFCaesar()
{
	openfile(1);
	unsigned int nfm=fm.GetLength(),k;
	BYTE m,c;
	for(k=0;k<nfm;k++)
	{
		fm.Read(&m,1);
		m2c(m,c,m_key);
		fc.Write(&c,1);
	}
	closefiles();
}

void CCriptView::DSFCaesar()
{
	openfile(0);
	unsigned int nfm=fm.GetLength(),k;
	BYTE m,c;
	for(k=0;k<nfm;k++)
	{
		fm.Read(&m,1);
		c2m(m,c,m_key);
		fc.Write(&c,1);
	}
	closefiles();
}

void CCriptView::ESFvige()
{
	openfile(1);
	unsigned int nfm=fm.GetLength(),k,nkey;
	char *ks=m_key_vige.GetBuffer(nkey=m_key_vige.GetLength());
	BYTE *m,*c;
	m=(BYTE *)malloc(nkey+1);
	c=(BYTE *)malloc(nkey+1);
	for(k=0;k<nfm;k+=nkey)
	{
		if(k+nkey<nfm)
			fm.Read(m,nkey);
		else
			fm.Read(m,nfm-k);
		m2c_vige(m,c,(BYTE *)ks);
		fc.Write(c,nkey);
	}
	closefiles();
}

void CCriptView::DSFvige()
{
	openfile(0);
	unsigned int nfm=fm.GetLength(),k,nkey;
	char *ks=m_key_vige.GetBuffer(nkey=m_key_vige.GetLength());
	BYTE *m,*c;
	m=(BYTE *)malloc(nkey+1);
	c=(BYTE *)malloc(nkey+1);
	for(k=0;k<nfm;k+=nkey)
	{
		if(k+nkey<nfm)
			fm.Read(m,nkey);
		else
			fm.Read(m,nfm-k);
		c2m_vige(m,c,(BYTE *)ks);
		fc.Write(c,nkey);
	}
	closefiles();
}

void CCriptView::OnVige() 
{
	Key_vige dlg;
	if(dlg.DoModal()==IDOK)
	{
	
	    m_key_vige=dlg.m_key;
		Disply_V();
	}

}

void CCriptView::m2c_pp(char m[], char c[], char k[], int nm)
{
	int n,j,js,nk;
	int i,*korder;
	char kmin,kmax;
	nk=0;
	for(i=0;k[i]!='\0';i++)nk++;//計算密鑰長度
	//計算密鑰順序表korder
	korder=(int*)malloc((nk)*sizeof(int));
	for(j=0;j<nk;j++)*(korder+j)=-1;
	kmax=k[0];
	for(i=1;i<nk;i++)
			if(k[i]>kmax) kmax=k[i];
	n=1;
	for(j=0;j<nk;j++)
	{
		kmin=kmax;
		for(i=0;i<nk;i++)
			if(*(korder+i)==-1 && k[i]<=kmin) n=i,kmin=k[i];
		*(korder+n)=j;
	}

	//加密
	n=0;
	for(i=0;i<nk;i++)
	{
		for(j=0;j<nk;j++)
			if(*(korder+j)==i)js=j;
		for(j=js;j<nm;j+=nk)
		{
			c[n]=m[j];
			n++;
		}
	}
}

void CCriptView::c2m_pp(char m[], char c[], char k[], int nm)
{
	int n,i,j,js,nk;
	int *korder;
	char kmin,kmax;
	nk=0;
	for(i=0;k[i]!='\0';i++)nk++;//計算密鑰長度
	//計算密鑰順序表korder
	korder=(int*)malloc((nk)*sizeof(int));
	for(j=0;j<nk;j++)*(korder+j)=-1;
	kmax=k[0];
	for(i=1;i<nk;i++)
			if(k[i]>kmax) kmax=k[i];
	n=1;
	for(j=0;j<nk;j++)
	{
		kmin=kmax;
		for(i=0;i<nk;i++)
			if(*(korder+i)==-1 && k[i]<=kmin) n=i,kmin=k[i];
		*(korder+n)=j;
	}

	//解密
	n=0;
	for(i=0;i<nk;i++)
	{
		for(j=0;j<nk;j++)
			if(*(korder+j)==i)js=j;
		for(j=js;j<nm;j+=nk)
		{
			c[j]=m[n];
			n++;
		}
	}
}

void CCriptView::OnSetCaesaKey() 
{
	SetKey dlg;
	if(dlg.DoModal()==IDOK)
	{
	
	    m_key=dlg.m_key%256;
//		Disply_V();
	}
	
}

void CCriptView::OnSetVigenereKey() 
{
	Key_vige dlg;
	if(dlg.DoModal()==IDOK)
	{
	
	    m_key_vige=dlg.m_key;
		Disply_V();
	}	
}



bool CCriptView::openfile(UINT opType)
{
	CFileException e;
	CFileDialog dlg(TRUE);
	if(opType)
		dlg.m_ofn.lpstrTitle="打開明文文件";
	else
		dlg.m_ofn.lpstrTitle="打開密文文件";
	if (dlg.DoModal() != IDOK) {
		return false;
	}
	if( !fm.Open( dlg.GetPathName(), CFile::modeRead, &e ) )
   {
	#ifdef _DEBUG
	   afxDump << "File could not be opened " << e.m_cause << "\n";
	#endif
	return false;
   }
	CFileDialog dlg1(FALSE);
	if(opType)
		dlg1.m_ofn.lpstrTitle="加密后保存為";
	else
		dlg1.m_ofn.lpstrTitle="解密后保存為";
	if (dlg1.DoModal() != IDOK) 
	{
		fm.Close();
		return false;
	}
	if( !fc.Open( dlg1.GetPathName(), CFile::modeCreate | CFile::modeWrite, &e ) )
   {
	#ifdef _DEBUG
	   afxDump << "File could not be opened " << e.m_cause << "\n";
	#endif
	fm.Close();
	return false;
   }
	return true;
}

void CCriptView::closefiles()
{
	fm.Close();
	fc.Close();
}

void CCriptView::DSF_DES()
{
	openfile(1);
	unsigned int nfm=fm.GetLength(),keylen=16,ndata;
	char key[16]={19};
	char *In,*Out;
	In=(char *)malloc(8);
	Out=(char *)malloc(8);

	for(long i=0,j=nfm>>3; i<j; ++i)
	{
		ndata=fm.Read(In,8);
		DES_Act(Out, In, ndata, key, sizeof(key), DECRYPT);
		fc.Write(Out,8);
	} 
	closefiles();

}

void CCriptView::ESF_3DES()
{

}

void CCriptView::DSF_3DES()
{

}

void CCriptView::ESF_RSA()
{

}

void CCriptView::DSF_RSA()
{

}

void CCriptView::OnSetDESKey() 
{
	Key_vige dlg;
	if(dlg.DoModal()==IDOK)
	{
	
	    m_key_DES=dlg.m_key;
//		m_key_DES=exkey(m_key_DES,16);
	}	
	
}

void CCriptView::OnSetRSAKey() 
{
	// TODO: Add your command handler code here
	
}

void CCriptView::ESF_DES()
{
	openfile(1);
	unsigned int nfm=fm.GetLength(),keylen=16,ndata;
	char key[16]={19};
	char *In,*Out;
	In=(char *)malloc(8);
	Out=(char *)malloc(8);

	for(long i=0,j=nfm>>3; i<j; ++i)
	{
		ndata=fm.Read(In,8);
		DES_Act(Out, In, ndata, key, sizeof(key), ENCRYPT);
		fc.Write(Out,8);
	} 
	closefiles();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产一区二区毛片| 亚洲一区日韩精品中文字幕| 亚洲欧洲性图库| 亚洲精选一二三| 久久福利视频一区二区| www.66久久| 欧美精品一二三| 久久精品视频网| 亚洲午夜私人影院| 国产精品18久久久久久久久久久久 | 免费不卡在线视频| 国产成人av电影在线观看| 在线视频一区二区三| 欧美精品一区二区精品网| 亚洲黄色在线视频| 狠狠色丁香九九婷婷综合五月| 91在线视频播放地址| 欧美一二三四区在线| 亚洲毛片av在线| 精品一区二区免费视频| 91国模大尺度私拍在线视频| 欧美成人精品高清在线播放| 一区二区三区中文字幕电影| 国产麻豆精品久久一二三| 在线观看视频欧美| 中文字幕精品—区二区四季| 日韩国产欧美一区二区三区| a在线播放不卡| 91麻豆精品国产91久久久久久久久| 国产精品午夜电影| 极品尤物av久久免费看| 在线免费观看日本一区| 欧美国产激情二区三区| 美国毛片一区二区三区| 色久优优欧美色久优优| 久久精品免费在线观看| 日日摸夜夜添夜夜添精品视频| 波多野结衣在线aⅴ中文字幕不卡| 欧美一区二区三区视频在线| 亚洲一区二区三区四区中文字幕| 成人久久18免费网站麻豆| 日韩精品专区在线| 亚洲成人在线网站| 91免费看视频| 国产精品全国免费观看高清 | 日韩欧美一二三| 一区二区三区日韩欧美| 国产91精品在线观看| 精品日韩欧美一区二区| 日本成人在线看| 欧美日韩黄色影视| 亚洲黄色小视频| 91在线精品一区二区三区| 久久精品视频在线免费观看| 激情成人午夜视频| 欧美电影免费观看高清完整版| 亚洲va欧美va人人爽| 日韩一二三区不卡| 亚洲综合清纯丝袜自拍| 91小视频在线观看| 国产精品久久久久一区二区三区 | 久久综合av免费| 美日韩一区二区| 91精品国产91综合久久蜜臀| 亚洲高清视频中文字幕| 在线观看欧美日本| 亚洲一区在线视频观看| 91看片淫黄大片一级在线观看| 国产精品理伦片| 91在线精品秘密一区二区| 亚洲图片激情小说| 色综合天天做天天爱| 亚洲欧美电影一区二区| 91毛片在线观看| 一区二区国产视频| 欧美亚洲高清一区| 亚洲国产va精品久久久不卡综合| 欧美视频日韩视频| 亚洲v日本v欧美v久久精品| 欧美人狂配大交3d怪物一区| 亚洲1区2区3区视频| 91麻豆精品国产无毒不卡在线观看 | 成人高清视频免费观看| 国产精品乱码久久久久久| 99精品国产热久久91蜜凸| 亚洲美腿欧美偷拍| 欧美久久久影院| 男人的j进女人的j一区| 精品久久久久久综合日本欧美| 久久成人久久鬼色| 欧美经典三级视频一区二区三区| 成人不卡免费av| 亚洲精品视频免费观看| 欧美日韩国产一级二级| 免费观看日韩电影| 久久理论电影网| 91在线观看污| 亚洲线精品一区二区三区| 91麻豆精品国产91久久久| 久久国产三级精品| 国产精品久久久久久久岛一牛影视 | 日韩午夜在线影院| 国内成人精品2018免费看| 中文在线一区二区 | 亚洲444eee在线观看| 欧美va亚洲va| www.欧美亚洲| 亚洲一级二级三级| 久久这里只精品最新地址| 99久久精品国产一区| 成人精品一区二区三区四区| 日韩理论电影院| 777亚洲妇女| 成人午夜看片网址| 香蕉影视欧美成人| 久久久久久免费毛片精品| 91社区在线播放| 日本aⅴ免费视频一区二区三区| 久久久午夜精品理论片中文字幕| 91丨九色丨尤物| 蜜臀va亚洲va欧美va天堂| 亚洲欧洲三级电影| 666欧美在线视频| 成人午夜电影网站| 亚洲二区在线视频| 国产嫩草影院久久久久| 欧美乱妇20p| 大陆成人av片| 天天影视网天天综合色在线播放| 国产欧美一区二区精品婷婷| 91久久奴性调教| 国产一区二区成人久久免费影院| 亚洲最新视频在线播放| 久久精品男人的天堂| 欧美精品777| 成人黄色av电影| 奇米综合一区二区三区精品视频| 国产精品入口麻豆九色| 日韩欧美一区在线观看| 一本大道综合伊人精品热热 | 久久综合狠狠综合久久综合88| 色成人在线视频| 国产精品综合视频| 婷婷中文字幕一区三区| 中文久久乱码一区二区| 精品少妇一区二区三区免费观看| 欧美三级在线播放| 成人开心网精品视频| 寂寞少妇一区二区三区| 天天做天天摸天天爽国产一区| 亚洲三级免费观看| 久久久噜噜噜久久人人看| 91精品蜜臀在线一区尤物| 一本一本大道香蕉久在线精品 | 国产清纯白嫩初高生在线观看91 | 精品亚洲成a人在线观看| 亚洲一区二区在线免费看| 国产精品久久久久影视| 久久久精品tv| 日韩午夜激情av| 欧美日韩一区二区三区四区五区| 99久久综合国产精品| 国产不卡在线播放| 久久91精品久久久久久秒播 | 国产色一区二区| 久久综合九色综合欧美就去吻 | 国产在线精品免费av| 日本色综合中文字幕| 视频一区二区三区在线| 亚洲一区二区三区精品在线| 亚洲三级在线观看| 亚洲天堂中文字幕| 综合久久久久久久| ...av二区三区久久精品| 国产精品免费看片| 国产精品国产自产拍高清av| 国产欧美精品一区| 国产精品区一区二区三区| 国产亚洲va综合人人澡精品 | 成人免费av在线| 成人午夜精品一区二区三区| 国产69精品久久久久毛片| 国产91在线看| 成人动漫一区二区在线| 成人网在线免费视频| 成人免费毛片a| 成人黄色大片在线观看| 91丝袜美女网| 欧美中文字幕一区二区三区| 欧美性一区二区| 精品1区2区3区| 欧美一区二区三区影视| 日韩欧美一区二区久久婷婷| 精品黑人一区二区三区久久| 精品国产乱码久久久久久闺蜜| 精品理论电影在线| 国产欧美日韩在线视频| 国产精品电影一区二区| 一区二区三区日韩| 日韩精品一二区|