加密解密的一个小测试

#include <iostream>
using namespace std;
char EncodeAchar(char c, int key); //单个字符加密
char DecodeAchar(char c, int key);//单个字符解密
void Encode(char* pstr, int *pkey);//字符串加密
void Decode(char* pstr, int *pkey);//字符串解密

int main(){
 单个字符加密
 //char a = 'A';
 //int key =9;
 加密
 //char Ma = EncodeAchar(a, key);
 //cout << "Ma:" << Ma << endl;
 解密
 //char Na = DecodeAchar(Ma, key);
 //cout << "Na:" << Na << endl;

 int key[] = { 1, 2, 3, 4, 5 };//加密算法
 char s[] = "yujianhui";
 char* p = s;
 cout << "加密前:" << p << endl;
 Encode(s, key);//加密
 cout << "加密后:" << p << endl;
 Decode(s, key);//加密
 cout << "解密后:" << p << endl;

 //bool a, b;
 //a = true; b = false;
 //cout << (a^a)<< endl;

 /*int a = 12; int b = 14;
 cout << (a^b) << endl;
 cout << (2^b) << endl;*/

 /*char c = 'A'; int a = 12;
 cout << (c^a) << endl;
 cout << char(77^a) << endl;*/

 system("pause");
 return 0;
}

//单个字符异或运算
char EncodeAchar(char c, int key){
 return c = c^key;
}
//单个字符解密
char DecodeAchar(char c, int key){
 return c^key;
}
void Encode(char* pstr, int *pkey)
{
 int len = strlen(pstr);//获取长度
 for (int i = 0; i < len;i++){
  *(pstr + i) = EncodeAchar(*(pstr + i), pkey[i % 5]);
  
 }
}

void Decode(char* pstr, int *pkey)
{
 int len = strlen(pstr);//获取长度
 for (int i = 0; i < len; i++){
  *(pstr + i) = DecodeAchar(*(pstr + i), pkey[i % 5]);
 }
}





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值