-
Notifications
You must be signed in to change notification settings - Fork 0
/
cryptohelper.cpp
104 lines (93 loc) · 2.23 KB
/
cryptohelper.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
#include "cryptohelper.h"
CryptoHelper::CryptoHelper(QObject *parent) :
QObject(parent)
{
}
QString CryptoHelper::pre(QString text)
{
text = text.toLower();
for(int i = 0; i < text.length(); i++)
{
if(!alphabet.contains(text[i]))
{
text.remove(text[i]);
i--;
}
}
return text;
}
QString CryptoHelper::preW(QString text)
{
QString a = alphabet + extAlphabet;
text = text.toLower();
for(int i = 0; i < text.length(); i++)
{
if(!a.contains(text[i]))
text.remove(text[i]);
}
return text;
}
QString CryptoHelper::post(QString text)
{
for(int i = CryptoHelper::tokenLength; i < text.length(); i += CryptoHelper::tokenLength + 1)
text.insert(i, " ");
return text;
}
bool CryptoHelper::isUniq(QString text)
{
QString key;
for(int i = 0; i < text.length(); i++)
if(key.contains(text[i]))
return false;
else
key += text[i];
return true;
}
QString CryptoHelper::leftRotate(QString text, int count)
{
QChar c;
for(int j = 0; j < count; j++)
{
c = text[0];
for(int i = 0; i < text.length() - 1; i++)
text[i] = text[i + 1];
text[text.length() - 1] = c;
}
return text;
}
QString CryptoHelper::rightRotate(QString text, int count)
{
QChar c;
for(int j = 0; j < count; j++)
{
c = text[text.length() - 1];
for(int i = text.length() - 1; i != 0 ; i--)
text[i] = text[i - 1];
text[0] = c;
}
return text;
}
QPair<int, int> CryptoHelper::tableSize(int alphabetLength)
{
int a = qSqrt(alphabetLength);
while(alphabetLength % a != 0)
{
a--;
}
return QPair<int, int>(a, alphabetLength / a);
}
QString CryptoHelper::alphabet = "";
QString CryptoHelper::extAlphabet = "";
int CryptoHelper::tokenLength = 4;
Qt::GlobalColor CryptoHelper::inCharsColor = Qt::green;
Qt::GlobalColor CryptoHelper::outCharsColor = Qt::red;
Qt::GlobalColor CryptoHelper::tableColor = Qt::black;
Qt::GlobalColor CryptoHelper::arrowColor = Qt::red;
int CryptoHelper::interval = 1000;
AbstractCipher::AbstractCipher(QWidget *parent) :
QWidget(parent)
{
}
void AbstractCipher::encryptText()
{
}