资源简介
运用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个文件信息
- 上一篇:MFC_跑酷游戏小Demo
- 下一篇:基于51系列单片机的电子罗盘设计总结报告
相关资源
- openssl库C语言完整版
- Visual C++ 2008 Redistributables
- 基于OpenSSL的RSA加解密的C语言实现
- openssl C++开发包(含debug和release,3
- OpenSSL客户端服务器源码
- 百度OCR文字识别依赖库-libcurl、opens
- vc6_tls1.2Demo with openssl
- 文件加密器(C++).rar
- C++使用Openssl进行RSA加密解密及签名验
- 文件加密软件与信息隐藏
- 支持国密的OpenSSL 2.0
- OpenSSLx86 & x64开发库
- rabbitmq的C++客户端SimpleAmqpClient编译库
- C语言实现任何文件的加密解密功能
- openssl c语言应用
- AES加密可加密文件
- 文件加密基于赫夫曼编码的简单程序
- openssl加解密C语言代码
- 文件加密解密
- vc++6.0DES加密算法+数据加密+文件加密
- 国密算法--Openssl 实现国密算法加密和
- C++文件加密系统
- OpenSSL+VC6.0 实现的安全Web Server 客户端
- vc++文件加密程序软件
- 纯C语言实现https的post和get不依赖任何
- C++文件加密系统实验报告
- 采用MFC编写的文件加密解密程序
- sm2加密,解密,签名,验签sm3哈希基
- C语言https POST提交openSSL的应用可作为
- rsa基于openssl1.1 实现签名(rsasign.cpp)
评论
共有 条评论