-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathcryptxor.cpp.autosave
36 lines (29 loc) · 997 Bytes
/
cryptxor.cpp.autosave
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
#include "cryptxor.h"
QVector<ushort> CryptXOR::crypt(const QVector<ushort> input) {
QVector<ushort> output = input;
for (int i = 0; i < input.size(); i++)
output[i] ^= m_key[i % (sizeof(m_key) / sizeof(char)) ];
return output;
}
QString CryptXOR::toString(QVector<ushort> vector){
QString result = "";
for (QVector<ushort>::iterator i = vector.begin();i != vector.end() ;++i)
result += uchar(*i);
return result;
}
QVector<ushort> CryptXOR::toVector(QString input) {
QVector<ushort> result;
for (QString::iterator i = input.begin(); i != input.end(); ++i)
result << (*i).cell();
return result;
}
CryptXOR::CryptXOR() {
m_key << 0 << 0 << 0; // make your keys
}
QString CryptXOR::crypt(const QString input) {
QVector<ushort> vector = toVector(input);
return toString(crypt(vector));
}
bool CryptXOR::authenticate(QString tryPassword, QString encryptedPassword) {
return tryPassword == crypt(encryptedPassword);
}