密码加密程序

时间:2014-03-31 15:18:03

标签: c++ password-encryption

您好我正在开发一个身份验证程序,用户输入的名称经过编码(加密)并与授权密码列表进行比较。如果接受该名称,则用户可以继续,如果不是,则用户还有2次尝试。您的程序将容纳4名指定用户,“硬编码”到该程序中。

通过将字母表的字母移动11个位置来编码名称,因此' a'成为'我'' b'成为' m'因此,名称“Joe Bloggs”将被编码为“Uzp Mwzrrd”。编码必须包裹,以便在' z'之后的字母。是' a'因此' z'编码为' k'。

下面是我的代码,但我正在努力加密部分。我显然没有要求任何人为我做这件事,但我希望有人可以给我一些关于如何做到这一点的提示。我真的输了。

bool login() {

const string name;
string nameAttempt;
int attempts = 0;


cout << "enter name" << endl;
cin >> nameAttempt;

LogIn Authenticate(name, nameAttempt);

//cout << "nameAttempt: " << Authenticate.getNameAttempt() << endl;
//cout << "name: " << Authenticate.getName() << endl;


if (Authenticate.getName() == Authenticate.getNameAttempt()) {
return true;
} 
else
while(Authenticate.getName() != Authenticate.getNameAttempt())
{       
if(attempts++ ==2)//.. a loop for two more attempts
{
return false;
}
std::cout<<"Incorrect name. Try again"<< endl;
std::cout<< "" << endl;

std::cout << "Enter Name:"<< endl;
cin >>nameAttempt;
LogIn Authenticate(name, nameAttempt);
    }
}


int main()
{

bool login();

bool loggedin = login();

if(loggedin) {
    cout << "Password Correct" << endl;
}

if(!loggedin) {
    cout << "Incorrect Password" << endl;
    cout << "Program will now terminate" << endl;
    system("pause");
    return 0;   
}

cout << "you are now free to enter lift" << endl;

system("pause");
return 0;
}

1 个答案:

答案 0 :(得分:0)

  • 提示1:获取字母表中的字母数量并不难:char c; int number = c -'a';
  • 提示2:您可以使用%来实现周期转换:int shifted_number = (number + 11) % 26;
  • 提示3:您可以从数字中获取字符:char new_char = number + 'a';
  • 提示4:如果允许,您可能还需要处理大写字母。