#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]);
}
}