加密/解密程序使用函数c++
Encrpyt/Decrpyt program using functions c++
大家好,这里完全是业余爱好者,过去两个月一直在学习c++。我对函数的理解不是很敏锐,对c++中的一些操作符(比如xor)的理解就更差了。我正在写一个程序,它将从用户那里获取一个字符串,使用^运算符加密它,然后解密它。我想我已经有了基本的基础,但是我得到了一些奇怪的输出,我认为这与我的for循环有关,或者我使用的异或。我的程序如下,任何帮助将非常感激。
#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;
}
使用异或的加密和解密需要相同的密钥(代码中表示0xAC)。encryptbuffer
由inputbuffer
与密钥异或生成,decryptbuffer
由encryptbuffer
与密钥异或生成。因此,该键必须是deer
的成员。
由于inputbuffer
、encryptbuffer
和decryptbuffer
是类deer的成员,因此在调用成员函数enctyptdata
和decryptdata
时不需要将它们作为形参。
加密功能:
char deer::encryptdata()
{
for (int i=0; i<count; ++i)
{
encryptbuffer[i] = inputbuffer[i] ^ key;
}
cout << encryptbuffer << endl;
}
解密功能
char deer::decryptdata()
{
for (int i=0; i<count; ++i)
{
decryptbuffer[i] = encryptbuffer[i] ^ key;
}
cout << decryptbuffer << endl;
}
鹿类:
class deer
{
static const char key = 0xAC;
...
};
相关文章:
- "error: no matching function for call to"构造函数错误
- 什么时候调用组成单元对象的析构函数
- 继承函数的重载解析
- 为什么随机数生成器不在void函数中随机化数字,而在main函数中随机化
- C++模板来检查友元函数的存在
- 递归函数计算序列中的平方和(并输出过程)
- 对RValue对象调用的LValue ref限定成员函数
- C++17复制构造函数,在std::unordereded_map上进行深度复制
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 在C++STL中是否有Polyval(Matlab函数)等价物?
- 为什么使用 "this" 指针调用派生成员函数?
- 将对象数组的引用传递给函数
- 函数调用中参数的顺序重要吗
- 函数向量_指针有不同的原型,我可以构建一个吗
- 使用不带参数的函数访问结构元素
- 代码在main()中运行,但在函数中出现错误
- 内置函数可查看CPP中的成员变量
- 如何获取std::result_of函数的返回类型
- 如何在c++中为模板函数实例创建快捷方式
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗