-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathProject Draft.cpp
148 lines (113 loc) · 3.07 KB
/
Project Draft.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
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#ifndef PASSWORD_MANAGER_H
#define PASSWORD_MANAGER_H
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class PasswordManager {
public:
PasswordManager();
~PasswordManager();
void addPassword(string website, string username, string password);
string getPassword(string website);
void changePassword(string website, string newPassword);
void deletePassword(string website);
private:
vector<string> websites;
vector<string> usernames;
vector<string> passwords;
string generatePassword(int length);
void encryptPassword(string password);
void decryptPassword(string password);
};
#endif
#include "PasswordManager.h"
PasswordManager::PasswordManager() {
websites.clear();
usernames.clear();
passwords.clear();
}
PasswordManager::~PasswordManager() {
websites.clear();
usernames.clear();
passwords.clear();
}
void PasswordManager::addPassword(string website, string username, string password) {
websites.push_back(website);
usernames.push_back(username);
encryptPassword(password);
passwords.push_back(password);
}
string PasswordManager::getPassword(string website) {
int index = -1;
for (int i = 0; i < websites.size(); i++) {
if (websites[i] == website) {
index = i;
break;
}
}
if (index == -1) {
return "";
}
return passwords[index];
}
void PasswordManager::changePassword(string website, string newPassword) {
int index = -1;
for (int i = 0; i < websites.size(); i++) {
if (websites[i] == website) {
index = i;
break;
}
}
if (index == -1) {
return;
}
encryptPassword(newPassword);
passwords[index] = newPassword;
}
void PasswordManager::deletePassword(string website) {
int index = -1;
for (int i = 0; i < websites.size(); i++) {
if (websites[i] == website) {
index = i;
break;
}
}
if (index == -1) {
return;
}
websites.erase(websites.begin() + index);
usernames.erase(usernames.begin() + index);
passwords.erase(passwords.begin() + index);
}
string PasswordManager::generatePassword(int length) {
string characters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
string password;
for (int i = 0; i < length; i++) {
password += characters[rand() % characters.length()];
}
return password;
}
void PasswordManager::encryptPassword(string password) {
// TODO: Implement encryption algorithm.
}
void PasswordManager::decryptPassword(string password) {
// TODO: Implement decryption algorithm.
}
#include <iostream>
#include "PasswordManager.h"
int main() {
PasswordManager manager;
// Add some passwords.
manager.addPassword("google.com", "username", "password");
manager.addPassword("facebook.com", "username", "password");
manager.addPassword("twitter.com", "username", "password");
// Get a password.
string password = manager.getPassword("google.com");
cout << "Password for google.com: " << password << endl;
// Change a password.
manager.changePassword("google.com", "newpassword");
// Delete a password.
manager.deletePassword("facebook.com");
return 0;
}