• 大小: 2.85MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-04
  • 语言: C/C++
  • 标签: Openssl  文件加密  

资源简介

运用OpenSSL实现对文件加密,适合新手学习openssl相关api的使用

资源截图

代码片段和文件信息

// DlgDec.cpp : implementation file
//

#include “stdafx.h“
#include “osslin.h“
#include “DlgDec.h“
#include “Structs.h“

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

/////////////////////////////////////////////////////////////////////////////
// CDlgDec dialog


CDlgDec::CDlgDec(CWnd* pParent /*=NULL*/)
: CDialog(CDlgDec::IDD pParent)
{
//{{AFX_DATA_INIT(CDlgDec)
m_keyOrder = -1;
m_inPath = _T(““);
m_key = _T(““);
m_keyPath = _T(““);
m_outPath = _T(““);
//}}AFX_DATA_INIT
}


void CDlgDec::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlgDec)
DDX_Control(pDX IDC_LIST_DEC_INFOSHOW m_infoList);
DDX_Radio(pDX IDC_RADIO_KEYORDER m_keyOrder);
DDX_Text(pDX IDC_EDIT_DEC_INPATH m_inPath);
DDX_Text(pDX IDC_EDIT_DEC_KEY m_key);
DDX_Text(pDX IDC_EDIT_DEC_KEYPATH m_keyPath);
DDX_Text(pDX IDC_EDIT_DEC_OUTPATH m_outPath);
//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CDlgDec CDialog)
//{{AFX_MSG_MAP(CDlgDec)
ON_BN_CLICKED(IDC_BUT_DEC_GO OnButDecGo)
ON_BN_CLICKED(IDC_BUT_INPATH OnButInpath)
ON_BN_CLICKED(IDC_BUT_KEYPATH OnButKeypath)
ON_BN_CLICKED(IDC_BUT_OUTPATH OnButOutpath)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CDlgDec message handlers
void CDlgDec::ChoseFilePath(CString & filepath)
{
CFileDialog fdlg(true);
fdlg.m_ofn.lpstrtitle=“选择路径“;
fdlg.m_ofn.lpstrFilter=“Key Files(*.*)\0*.*\0All Files(*.*)\0*.*\0\0“;
if(IDOK==fdlg.DoModal())
{
filepath = fdlg.GetPathName();
}
}

BYTE * CDlgDec::base64(int ioflagBYTE * inint & length)
{
BYTE  * out=(BYTE *)malloc(sizeof(BYTE)*length*2);
if(ioflag==0)
{
length=EVP_EncodeBlock(outinlength);
return out;
}
else if(ioflag==1)
{
int pad=0;
BYTE *p=in+length-1;
for(int i=0;i<4;i++)
{
 if(*p==‘=‘)pad++;
 p--;
}
length=EVP_DecodeBlock(outinlength);
length-=pad;
return out;
}
return NULL;
}

void CDlgDec::SetEncInfo()
{
this->UpdateData(TRUE);
CComboBox * pCombo = (CComboBox *)GetDlgItem(IDC_COMBO_DECWAY);
m_encOrder = pCombo->GetCurSel();
}

void CDlgDec::InitEnc()
{
md=EVP_md5();
EVP_CIPHER_CTX_init(&ctx);

switch(m_encOrder)
{
case 0:
cipher=EVP_aes_128_cbc();
break;
case 1:
cipher=EVP_aes_128_cfb();
break;
case 2:
cipher=EVP_aes_128_ecb();
break;
case 3:
cipher=EVP_aes_128_ofb();
break;
case 4:
cipher=EVP_aes_192_cbc();
break;
case 5:
cipher=EVP_aes_192_cfb();
break;
case 6:
cipher=EVP_aes_192_ecb();
break;
case 7:
cipher=EVP_aes_192_ofb();
break;
case 8:
cipher=EVP_aes_256_cbc();
break;
case 9:
cipher=EVP_aes_256_cfb();
break;
case 10:
cipher=EVP_aes_256_ecb();
break;
case 11:
cipher=EVP_aes_256_ofb();
break;
case 12:
cipher=EVP_bf_cbc();
break;
case 13:
ciphe

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      15436  2018-07-31 21:39  OssLin\a.txt

     文件      44059  2008-07-03 11:39  OssLin\Debug\DlgDec.obj

     文件      47877  2008-07-03 14:14  OssLin\Debug\DlgEnc.obj

     文件    1110016  2008-03-21 11:16  OssLin\Debug\libeay32.dll

     文件     127073  2008-07-05 20:57  OssLin\Debug\OssLin.exe

     文件     391524  2008-07-05 20:57  OssLin\Debug\OssLin.ilk

     文件      16712  2008-07-03 14:14  OssLin\Debug\OssLin.obj

     文件    5501952  2008-06-28 11:17  OssLin\Debug\OssLin.pch

     文件     484352  2008-07-05 20:57  OssLin\Debug\OssLin.pdb

     文件       5360  2008-07-05 20:57  OssLin\Debug\OssLin.res

     文件      28316  2008-07-03 14:14  OssLin\Debug\OssLinDlg.obj

     文件         22  2008-07-03 16:51  OssLin\Debug\regsvr32.trg

     文件       1778  2008-07-03 16:51  OssLin\Debug\SimpleExt.lib

     文件     204800  2008-03-21 11:16  OssLin\Debug\ssleay32.dll

     文件     105869  2008-06-28 11:17  OssLin\Debug\StdAfx.obj

     文件     222208  2008-07-05 20:57  OssLin\Debug\vc60.idb

     文件     397312  2008-07-03 14:14  OssLin\Debug\vc60.pdb

     文件       8827  2008-07-03 11:39  OssLin\DlgDec.cpp

     文件       1841  2008-07-03 11:34  OssLin\DlgDec.h

     文件      10578  2008-07-03 11:26  OssLin\DlgEnc.cpp

     文件       1900  2008-07-03 14:14  OssLin\DlgEnc.h

     文件    1110016  2008-03-21 11:16  OssLin\libeay32.dll

     文件     664754  2008-03-21 11:16  OssLin\libeay32.lib

     文件      39596  2008-07-05 20:57  OssLin\OssLin.aps

     文件       3097  2008-07-05 20:57  OssLin\OssLin.clw

     文件       2384  2008-06-28 17:12  OssLin\OssLin.cpp

     文件       4520  2008-07-01 21:07  OssLin\OssLin.dsp

     文件        520  2008-06-28 11:17  OssLin\OssLin.dsw

     文件       1324  2008-06-28 11:17  OssLin\OssLin.h

     文件      66560  2008-07-05 20:57  OssLin\OssLin.ncb

............此处省略20个文件信息

评论

共有 条评论