MFC 简单的加密解密 小程序
2008-03-06 15:05
363 查看
[align=center] 简单的加密解密算法[/align]
这个小程序是用来作为一个非常简单的对称加密算法,比移位加密稍微强那么一点点。
seed的话大家可以自己来设置,seed大概为60位,程序没有边界检查,很简陋,希望看官们别见笑。
// Code.h: interface for the CCode class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_CODE_H__D5B90563_053E_4256_A61D_7D56F8FB20CF__INCLUDED_)
#define AFX_CODE_H__D5B90563_053E_4256_A61D_7D56F8FB20CF__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CCode
{
public:
CString Decode(CString strCode);
CString Encode(CString strCode);
CCode();
virtual ~CCode();
private:
CString EnDeCode(CString strCode);
int iLength;
char* szSeed2;
};
#endif // !defined(AFX_CODE_H__D5B90563_053E_4256_A61D_7D56F8FB20CF__INCLUDED_)
// Code.cpp: implementation of the CCode class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "DecodeEncode.h"
#include "Code.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CCode::CCode()
{
iLength = 0;
char strTemp[60] ={0x04,0x02,0x06,0x05,0x01,0x09,0x03,0x07,0x08,0x02,\
0x04,0x02,0x06,0x05,0x01,0x09,0x03,0x07,0x08,0x02,\
0x04,0x02,0x06,0x05,0x01,0x09,0x03,0x07,0x08,0x02,\
0x04,0x02,0x06,0x05,0x01,0x09,0x03,0x07,0x08,0x02,\
0x04,0x02,0x06,0x05,0x01,0x09,0x03,0x07,0x08,0x02,\
0x04,0x02,0x06,0x05,0x01,0x09,0x03,0x07,0x08,0x02};
szSeed2 = new char[60];
memcpy(szSeed2,strTemp,60);
}
CCode::~CCode()
{
delete[] szSeed2;
}
CString CCode::Encode(CString strCode)
{
return EnDeCode(strCode);
}
CString CCode::Decode(CString strCode)
{
return EnDeCode(strCode);
}
CString CCode::EnDeCode( CString strCode )
{
LPCTSTR szSource = (LPCTSTR) strCode;
iLength = strCode.GetLength();
char *szSeed = new char[iLength];
memcpy(szSeed,szSeed2,iLength);
char * szSr = new char[iLength];
char *szDes = new char[iLength + 1];
memcpy(szSr,szSource,iLength);
for(int i = 0;i < iLength;i++)
{
szDes[i] = szSr[i] ^szSeed[i] ;
}
szDes[iLength] = '\0';
CString strTemp(szDes);
delete[] szSr;
delete[] szDes;
delete[] szSeed;
return strTemp;
}整个程序使用起来很简单,就是调用一下加密解密就行了。
本文出自 “持之以恒,刨根问底” 博客,请务必保留此出处http://zjyzjy.blog.51cto.com/329429/64401
这个小程序是用来作为一个非常简单的对称加密算法,比移位加密稍微强那么一点点。
seed的话大家可以自己来设置,seed大概为60位,程序没有边界检查,很简陋,希望看官们别见笑。
// Code.h: interface for the CCode class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_CODE_H__D5B90563_053E_4256_A61D_7D56F8FB20CF__INCLUDED_)
#define AFX_CODE_H__D5B90563_053E_4256_A61D_7D56F8FB20CF__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CCode
{
public:
CString Decode(CString strCode);
CString Encode(CString strCode);
CCode();
virtual ~CCode();
private:
CString EnDeCode(CString strCode);
int iLength;
char* szSeed2;
};
#endif // !defined(AFX_CODE_H__D5B90563_053E_4256_A61D_7D56F8FB20CF__INCLUDED_)
// Code.cpp: implementation of the CCode class.
//
//////////////////////////////////////////////////////////////////////
#include "stdafx.h"
#include "DecodeEncode.h"
#include "Code.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
CCode::CCode()
{
iLength = 0;
char strTemp[60] ={0x04,0x02,0x06,0x05,0x01,0x09,0x03,0x07,0x08,0x02,\
0x04,0x02,0x06,0x05,0x01,0x09,0x03,0x07,0x08,0x02,\
0x04,0x02,0x06,0x05,0x01,0x09,0x03,0x07,0x08,0x02,\
0x04,0x02,0x06,0x05,0x01,0x09,0x03,0x07,0x08,0x02,\
0x04,0x02,0x06,0x05,0x01,0x09,0x03,0x07,0x08,0x02,\
0x04,0x02,0x06,0x05,0x01,0x09,0x03,0x07,0x08,0x02};
szSeed2 = new char[60];
memcpy(szSeed2,strTemp,60);
}
CCode::~CCode()
{
delete[] szSeed2;
}
CString CCode::Encode(CString strCode)
{
return EnDeCode(strCode);
}
CString CCode::Decode(CString strCode)
{
return EnDeCode(strCode);
}
CString CCode::EnDeCode( CString strCode )
{
LPCTSTR szSource = (LPCTSTR) strCode;
iLength = strCode.GetLength();
char *szSeed = new char[iLength];
memcpy(szSeed,szSeed2,iLength);
char * szSr = new char[iLength];
char *szDes = new char[iLength + 1];
memcpy(szSr,szSource,iLength);
for(int i = 0;i < iLength;i++)
{
szDes[i] = szSr[i] ^szSeed[i] ;
}
szDes[iLength] = '\0';
CString strTemp(szDes);
delete[] szSr;
delete[] szDes;
delete[] szSeed;
return strTemp;
}整个程序使用起来很简单,就是调用一下加密解密就行了。
本文出自 “持之以恒,刨根问底” 博客,请务必保留此出处http://zjyzjy.blog.51cto.com/329429/64401
相关文章推荐
- MFC 简单的加密解密 小程序
- 一个简单的C++加密,解密文件程序
- 一个简单的加密解密程序
- 一个简单的加密和解密程序——凯撒密码
- Visual Studio 2017中使用正则修改部分内容 如何使用ILAsm与ILDasm修改.Net exe(dll)文件 C#学习-图解教程(1):格式化数字字符串 小程序开发之图片转Base64(C#、.Net) jquery遍历table为每一个单元格取值及赋值 。net加密解密相关方法 .net关于坐标之间一些简单操作
- 简单的加密解密程序(单词加密解密)
- 一个简单的加密解密程序
- RSA算法简单实现加密、解密、签名、验证(原创Java程序)
- 用java编写一个简单的字符串加密解密程序,将字符串分成若干行,实现字符串以一列一列读取,并还原之前输入的字符串。这里实现4行输出。
- Java批量加密解密文件简单小程序
- 简单的加密,解密程序
- C# 程序简单实现加密解密程序代码
- C++/Qt中一个简单的加密解密程序
- 简单的内容加密解密,在嵌入式上实现
- 简单模仿mfc程序
- 使用exe程序加密解密,web.config时出错 ”Unable to save config to file...."
- 实验三 结对项目 加密与解密程序
- 文本加密解密示例小程序java源码
- 用asp写一个简单的加密和解密的类。。。。
- ASP程序加密解密方法全面解析