-
Notifications
You must be signed in to change notification settings - Fork 10
/
login.cpp
125 lines (113 loc) · 2.37 KB
/
login.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
#include "login.h"
#include "ui_login.h"
#include "dialog.h"
#include "ui_dialog.h"
#include<QMessageBox>
#include<QDebug>
#include<QFile>
#include<QTextStream>
#include<cstring>
#include<cstdio>
#include<string>
using namespace std;
login::login(QWidget *parent) :
QDialog(parent),
ui(new Ui::login)
{
ui->setupUi(this);
this->setWindowTitle("LOGIN");
QPixmap pix("D:\\qt\\irctc3\\logo.jpg");
ui->label_3->setPixmap(pix);
}
login::~login()
{
delete ui;
}
void login::on_buttonBox_accepted()
{
QString name,pass;
name=ui->lineEdit->text();
pass=ui->lineEdit_2->text();
search(name,pass);
}
void login::on_buttonBox_rejected()
{
ui->lineEdit->clear();
ui->lineEdit_2->clear();
}
void login::on_pushButton_clicked()
{
exit(0);
}
QString login:: encrypted(QString pass)
{
int n=pass.length();
int i;
std::string s=pass.toUtf8().constData();
for(i=0;i<n;i++)
{
if(s[i]=='y')
s[i]='a';
if(s[i]=='Y')
s[i]='A';
if(s[i]=='z')
s[i]='b';
if(s[i]=='Z')
s[i]='B';
else
s[i]=s[i]+2;
}
pass=QString ::fromStdString(s);
return pass;
}
void login :: search(QString name,QString pass)
{
readfile();
int x=0;
if(m.count(name))
{
qDebug()<<pass;
pass=encrypted(pass);
qDebug()<<pass;
if(pass.compare(m[name])==0)
x=1;
else
x=-1;
}
else
{
QMessageBox::critical(this,tr("error"),tr("Invalid username or password"));
}
if(x==-1)
{
QMessageBox::critical(this,tr("error"),tr("Invalid username or password"));
}
else if(x==1)
{
this->hide();
opendisplay();
}
}
void login :: readfile(){
QString filename="D:\\qt\\irctc3\\user.txt";
QFile file(filename);
QString name,pass;
if(!file.exists()){
qDebug() << "NO exist "<<filename;
}else{
qDebug() << filename<<" exits...";
}
QString line;
int i=0;
if (file.open(QIODevice::ReadOnly | QIODevice::Text)){
QTextStream stream(&file);
while (!stream.atEnd()){
line = stream.readLine();
name=line.split(" ").at(0);
pass=line.split(" ").at(1);
m[name]=pass;
i++;
}
}
file.close();
}