gpt4 book ai didi

c++ - 使用函数 c++ 加密/解密程序

转载 作者:塔克拉玛干 更新时间:2023-11-03 07:45:01 28 4
gpt4 key购买 nike

大家好,这里是业余爱好者,过去两个月一直在学习 C++。我对函数的理解不是很敏锐,对 C++ 中的某些运算符(如 xor)更是如此。我正在编写一个程序,它将从用户那里获取一个字符串,使用 ^ 运算符对其进行加密,然后对其进行解密。我想我已经打下了基础,但我得到了一些奇怪的输出,我认为这与我的 for 循环有关,或者可能与我对 XOR 的使用有关。我的程序如下,任何帮助将不胜感激。

#include <iostream>
#include <string>
#include <cmath>
using namespace std;

const short SIZE = 132;
class deer
{

public:
char inputdata();
char encryptdata(char inputbuffer[SIZE], char encryptbuffer[SIZE]);
char inputbuffer[SIZE];
char encryptbuffer[SIZE];
char decryptbuffer[SIZE];
char decrpytdata(char n[], char p[]);
long e;
long count;


};

int main()
{
deer obj;
obj.inputdata();
obj.encryptdata(obj.inputbuffer, obj.encryptbuffer);
obj.decrpytdata(obj.encryptbuffer, obj.decryptbuffer);

system("pause");
return 0;
}

char deer::inputdata()
{
cout << "please enter your text to be encrpyted" << endl;
cin.getline(inputbuffer, SIZE);
cin.gcount();
count =cin.gcount();
count--;
cout << inputbuffer << endl;
return 0;


}

char deer::encryptdata(char inputbuffer[], char encryptbuffer[])
{
short key = 0xAC;
int i = 0;
for (int i = 0; i <= count; i++) {

inputbuffer[i] = encryptbuffer[i] ^= key;
cout << encryptbuffer << endl;

}
return *encryptbuffer;


}

char deer::decrpytdata(char encryptbuffer[], char decryptbuffer[])
{
int i = 0;
for (int i = 0; i <= count; i++) {

encryptbuffer[i] ^= decryptbuffer[i];

}
cout << decryptbuffer << endl;

return decryptbuffer;
}

最佳答案

使用异或加密和解密需要相同的 key (代码中表示为0xAC)。 encryptbuffer通过对 inputbuffer 进行异或运算生成用 key 和 decryptbuffer通过对 encryptbuffer 进行异或运算生成用 key 。因此, key 需要是 deer 的成员。 .

inputbuffer , encryptbuffer , 和 decryptbuffer是类deer的成员,调用成员函数时不需要将它们作为参数enctyptdatadecryptdata .

加密函数:

char deer::encryptdata()
{
for (int i=0; i&lt;count; ++i)
{
encryptbuffer[i] = inputbuffer[i] ^ key;
}
cout &lt;&lt; encryptbuffer &lt;&lt; endl;
}

解密函数:

char deer::decryptdata()
{
for (int i=0; i&lt;count; ++i)
{
decryptbuffer[i] = encryptbuffer[i] ^ key;
}
cout &lt;&lt; decryptbuffer &lt;&lt; endl;
}

鹿类:

class deer
{
static const char key = 0xAC;
...
};

关于c++ - 使用函数 c++ 加密/解密程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40624272/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com