?? rijndview.cpp
字號:
// RijndView.cpp : implementation of the CRijndView class
//
#include "stdafx.h"
#include "Rijnd.h"
#include "RijndDoc.h"
#include "RijndView.h"
#include "rijndael.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//定義
rijndael rij;
/////////////////////////////////////////////////////////////////////////////
// CRijndView
IMPLEMENT_DYNCREATE(CRijndView, CFormView)
BEGIN_MESSAGE_MAP(CRijndView, CFormView)
//{{AFX_MSG_MAP(CRijndView)
ON_BN_CLICKED(IDC_ENCRYPTION, OnEncryption)
ON_BN_CLICKED(IDC_UNCRYPTION, OnUncryption)
ON_BN_CLICKED(IDC_ENCRYPTION_SELECT, OnEncryptionSelect)
ON_BN_CLICKED(IDC_UNCRYPTION_SELECT, OnUncryptionSelect)
//}}AFX_MSG_MAP
// Standard printing commands
ON_COMMAND(ID_FILE_PRINT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_DIRECT, CFormView::OnFilePrint)
ON_COMMAND(ID_FILE_PRINT_PREVIEW, CFormView::OnFilePrintPreview)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CRijndView construction/destruction
CRijndView::CRijndView()
: CFormView(CRijndView::IDD)
{
//{{AFX_DATA_INIT(CRijndView)
m_miyao = _T("shufuxiashufuxiashufuxiashufuxia");
//}}AFX_DATA_INIT
// TODO: add construction code here
}
CRijndView::~CRijndView()
{
}
void CRijndView::DoDataExchange(CDataExchange* pDX)
{
CFormView::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CRijndView)
DDX_Text(pDX, IDC_KEY, m_miyao);
//}}AFX_DATA_MAP
}
BOOL CRijndView::PreCreateWindow(CREATESTRUCT& cs)
{
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return CFormView::PreCreateWindow(cs);
}
void CRijndView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();
}
/////////////////////////////////////////////////////////////////////////////
// CRijndView printing
BOOL CRijndView::OnPreparePrinting(CPrintInfo* pInfo)
{
// default preparation
return DoPreparePrinting(pInfo);
}
void CRijndView::OnBeginPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add extra initialization before printing
}
void CRijndView::OnEndPrinting(CDC* /*pDC*/, CPrintInfo* /*pInfo*/)
{
// TODO: add cleanup after printing
}
void CRijndView::OnPrint(CDC* pDC, CPrintInfo* /*pInfo*/)
{
// TODO: add customized printing code here
}
/////////////////////////////////////////////////////////////////////////////
// CRijndView diagnostics
#ifdef _DEBUG
void CRijndView::AssertValid() const
{
CFormView::AssertValid();
}
void CRijndView::Dump(CDumpContext& dc) const
{
CFormView::Dump(dc);
}
CRijndDoc* CRijndView::GetDocument() // non-debug version is inline
{
ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CRijndDoc)));
return (CRijndDoc*)m_pDocument;
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CRijndView message handlers
void CRijndView::OnEncryption()
{
// TODO: Add your control notification handler code here
k_bit=(unsigned char*)m_miyao.GetBuffer(8);
m_miyao.ReleaseBuffer();
unsigned char *e_bit;
e_bit=new unsigned char [length];
BeginWaitCursor();
{
rij.set_key(k_bit,256);
for(int j=0;j<N;j++)
{
rij.encrypt(var,e_bit);
var+=16;
e_bit+=16;
}
var=var-16*N;
e_bit=e_bit-16*N;
}
EndWaitCursor();
char szFilter[] = "all Files(*.*)|*.*||";
CFileDialog FileDlg( FALSE, NULL, NULL, OFN_HIDEREADONLY, szFilter );
FileDlg.m_ofn.lpstrTitle="加密文件存為";
if( FileDlg.DoModal() == IDOK ){
BeginWaitCursor();
CString PathName = FileDlg.GetPathName();
PathName=PathName+name;
CFile f;
f.Open(PathName,
CFile::modeCreate|CFile::modeWrite);
f.Write(e_bit,length);
f.Close();
EndWaitCursor();
}
m_jiami="加密結束!";
MessageBox(m_jiami);
delete e_bit;
UpdateData(false);
Invalidate(true);
}
void CRijndView::OnUncryption()
{
// TODO: Add your control notification handler code here
k_bit=(unsigned char*)m_miyao.GetBuffer(8);
m_miyao.ReleaseBuffer(); //密鑰的獲取
unsigned char *m_bit;
m_bit=new unsigned char [length];
BeginWaitCursor();
{
rij.set_key(k_bit,256);
for(int j=0;j<N;j++)
{
rij.decrypt(var,m_bit);
m_bit+=16;
var+=16;
}
m_bit=m_bit-16*N;
var=var-16*N;
}
EndWaitCursor();
char szFilter[] = "all Files(*.*)|*.*||";
CFileDialog FileDlg( FALSE, NULL, NULL, OFN_HIDEREADONLY, szFilter );
FileDlg.m_ofn.lpstrTitle="解密文件存為";
if( FileDlg.DoModal() == IDOK ){
BeginWaitCursor();
CString PathName = FileDlg.GetPathName();
PathName=PathName+name;
CFile f;
f.Open(PathName,
CFile::modeCreate|CFile::modeWrite);
f.Write(m_bit,length);
f.Close();
CString string;
string="notepad"+PathName;
WinExec(string,SW_SHOW);
m_jiami="解密結束!";
MessageBox(m_jiami);
EndWaitCursor();
}
delete m_bit;
UpdateData(false);
Invalidate(true);
}
void CRijndView::OnEncryptionSelect()
{
// TODO: Add your control notification handler code here
char szFilter[] = "all Files(*.*)|*.*||";
CFileDialog FileDlg( TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter );
if( FileDlg.DoModal() == IDOK )
{
BeginWaitCursor();
CString PathName = FileDlg.GetPathName();
CString filename=FileDlg.GetFileName();
CString first=FileDlg.GetFileTitle();
name=filename.Right(filename.GetLength()-first.GetLength());
{
CFile f2;
if(f2.Open(PathName,CFile::modeRead|CFile::typeBinary )==FALSE)
return;
length=f2.GetLength();
N=length/16;
if(length%16==0)
{
N=N;
}
else
{
length=length+16-length%16;
N=N+1;
}
var=new unsigned char [length];
f2.Read(var,f2.GetLength());
if(f2.GetLength()%16!=0)
{
for(i=0;i<(int)(16-f2.GetLength()%16);i++)
{
var[length-16+f2.GetLength()%16+i]=' ';
}
}
f2.Close();
Invalidate(true);
}
EndWaitCursor();
}
}
void CRijndView::OnUncryptionSelect()
{
// TODO: Add your control notification handler code here
char szFilter[] = "all Files(*.*)|*.*||";
CFileDialog FileDlg( TRUE, NULL, NULL, OFN_HIDEREADONLY, szFilter );
if( FileDlg.DoModal() == IDOK )
{
BeginWaitCursor();
CString PathName = FileDlg.GetPathName();
CString filename=FileDlg.GetFileName();
CString first=FileDlg.GetFileTitle();
name=filename.Right(filename.GetLength()-first.GetLength());
{
CFile f2;
if(f2.Open(PathName,CFile::modeRead|CFile::typeBinary )==FALSE)
return;
length=f2.GetLength();
var=new unsigned char [length];
N=length/16;
f2.Read(var,f2.GetLength());
f2.Close();
Invalidate(true);
}
EndWaitCursor();
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -