您的位置:首页 > 移动开发 > 微信开发

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: