C++ string 加密/解密 的简单程序 (悬赏200分)

来源:百度知道 编辑:UC知道 时间:2024/06/28 01:01:03
我想编一个C++ string 加密/解密 的初级程序,但是对我来讲又太复杂了. 因为星期2要用到,所以放出200最高悬赏分问一下各位会做的高手,具体要求以下,做出来后必须是以下连接中这些图片这样的(很重要,但是需要用户所输入的部分不用担心,希望能在2天内被解答因为非常急用,有些C++的词汇犹豫我不知道中文是什么就写的英文,有什么我说的不清楚的地方耽误到您的回答,请及时提出:
如上图所示, 这个程序一开始会叫用户输入一段秘密语句(英文叫secret code) ,比如上图中的" We are all Cougars", 和加密代码(英文叫encryption code) (从数字1~100都可以生效).然后程序会叫出一个可以接受string pointer和加密代码的 user-defined function void encrypter ( char *, int).这个加密算法建立在ASCII表格上的(见下图)
并且它是一个字符一个字符的来加密.被加密后的字符是来自原字符+加密代码(encryption code)例如: 'A' (ascii 65) + 加密代码(encryption code) 17 -> 加密字符(encrypted character) 'R' (ascii 82) ; x (ascii88) + 加密代码(encryption code) 22 -> 加密字符(encrypted character) 'n' (ascii 110)另外,这个方程要求只能用pointers来加密(很重要), 绝对不可以用indexes string array. 因为String总是会被null字符来终止,所以利用这个, 可以用null字符把string letter 来1个1个循环做为退出条件.如下图, 在加密程序后,程序会在屏幕上显示加密过的字符串, 并且在下边显示解密栏目然后让用户来输入解密这段字符串的数字. 然后程序会叫一个用同样的string pointer, 输入的代码, 和解码用到的反算法的 user-defined function void decrypter (char *, int).
这个程序和用户自定义的方程(英文叫

//---------------------------------------------------------------------------
#include <iostream>
#include <cstdlib>
#define MAX 255 //明文最大长度+1

using namespace std;
void encrypter( char *a, int n)
{
int i;
for (i=0;a[i];i++) {
a[i]+=n;
}
}
void decrypter(char *a, int n)
{
int i;
for (i = 0; a[i]; i++) {
a[i]-=n;
}
}
int main(void)
{
char str[MAX];
int sc;
cout<<"**** ENCRYPTER ***"<<endl<<endl;
cout<<"Insert the secret sentence: "<<flush;
cin.getline(str,MAX-1);
do{
cout<<endl<<"Insert the encrypting code (1-100): "<<flush;
cin>>sc;
}while (sc<1||sc>100);
encrypter(str,sc);
cout<<endl<<"The encrypted sentence is: "<<str<<endl;
cout<<endl<<"**