最简单char*加密

H.H 文件

/*
此程序仅供学习使用,不可作为商业用途。
*/
class Key
{
public:
	Key();                             //基础构造函数,当前无用
	Key(char*,char*);                  //拷贝构造函数,间接调用SetK函数
	~Key();                            //析构函数,当前无用
	void SetK(char*,char*);            //装载并重新设置环境,参数1为即将加密或解密的字符串,参数2为密匙
	void AdK();                        //开始加密
	void SuK();                        //开始解密
	char* RetDat();                    //返回加密或解密后的数据
private:
	char
		*tKey,         //密匙
		*tDat;         //数据
};


CPP.CPP 文件

#include "H.H"

Key::Key()
{
	"实验程序构造";
}

Key::Key(char* d,char* k)
{
	SetK(d,k);
}

void Key::SetK(char* d,char* k)
{
	tDat=d;
	tKey=k;
}

void Key::AdK()
{
	int tmp=0,ad=0;
	while (*(tKey+tmp)!='\0')
	{
		ad=ad+(*(tKey+tmp));
		tmp++;
	}
	tmp=0;
	while (*(tDat+tmp)!='\0')
	{
		*(tDat+tmp)=(*(tDat+tmp))+(ad*828228+ad*ad);
		tmp++;
	}
}

void Key::SuK()
{
	int tmp=0,ad=0;
	while (*(tKey+tmp)!='\0')
	{
		ad=ad+(*(tKey+tmp));
		tmp++;
	}
	tmp=0;
	while (*(tDat+tmp)!='\0')
	{
		*(tDat+tmp)=(*(tDat+tmp))-(ad*828228+ad*ad);
		tmp++;
	}
}

char* Key::RetDat()
{
	return tDat;
}

Key::~Key()
{
	"实验程序析构";
}


 

程序在Windows XP下使用Visual C++ 6.0编译通过,测试成功,以下是测试程序核心代码:

 

	char a1[1000],ke[1000];
	printf("请输入文本:");
	scanf("%s",a1);
	printf("请输入密匙:");
	scanf("%s",ke);
	Key a;
	a.SetK(a1,ke);
	a.AdK();
	printf("加密后: %s\n\n",a.RetDat());
	a.SuK();
	printf("解密后: %s\n\n",a.RetDat());
	getch();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值