天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 78|回复: 0

MFC 简单的加密解密 小程序

[复制链接]

该用户从未签到

主题

0

回帖

2912

积分

管理员

积分
2912
发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
这个小程序是用来作为一个非常简单的对称加密算法,比移位加密稍微强那么一点点。
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;   
}

 

 

 

 

MFC 简单的加密解密 小程序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|中国膜结构网_中国空间膜结构协会

GMT+8, 2024-11-1 12:25 , Processed in 0.145883 second(s), 28 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表