-
Notifications
You must be signed in to change notification settings - Fork 0
/
Program.cs
113 lines (93 loc) · 2.84 KB
/
Program.cs
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
using System.ComponentModel;
using System.IO.Compression;
using System.Linq.Expressions;
using System;
using System.Xml;
namespace Rot{
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Type 'e' for encrypt, 'd for decrypt or 'dnk' for decrypt no key.\nUse 'b' for break (exit).\n");
// The main loop of the app
while (true){
int ROT;
Console.Write("Mode: ");
string mode = Console.ReadLine() ?? "";
string fraze = "";
Console.WriteLine();
if (mode != "b") {
Console.Write("Phraze: ");
fraze = Console.ReadLine() ?? "";
}
else Environment.Exit(0);
if (mode == "dnk") {
Console.WriteLine(DecryptNoKey(fraze));
continue;
}
ROT = GetRot();
// TODO: find better way of asking for rot
if (mode == "e") {
Console.WriteLine("\nEncrypted: " + Encrypt(fraze, ROT));
}
else if (mode == "d") {
Console.WriteLine("\nDecrypted: " + Decrypt(fraze, ROT));
}
else if (fraze == "") {
Console.WriteLine("\n\nNo input.");
}
}
}
static int GetRot() {
Console.Write("ROT: ");
return Convert.ToInt32( Console.ReadLine() );
}
static string Encrypt(string fraze, int ROT) {
string output = "";
int letter;
fraze = fraze.ToLower();
foreach(char ch in fraze) {
letter = Convert.ToInt32 (ch ) - 96;
if (ch == ' ') {
output += ' ';
continue;
}
if ( letter + ROT > 26 ) {
output += (char) ((int) (( letter + ROT ) % 26 ) + 96 );
}
else {
output += (char) ( (int) ch + ROT );
}
}
return output;
}
static string Decrypt(string fraze, int ROT) {
string output = ""; int letter;
fraze = fraze.ToLower();
foreach(char ch in fraze) {
letter = (int) ch - 96;
if (ch == ' ') {
output += ' ';
continue;
}
if (letter - ROT == 0) {
output += 'z';
}
else if ( letter - ROT < 0 ) {
output += (char) ( letter - ROT + 26 + 96 ) ;
}
else {
output += (char) (ch - ROT);
}
}
return output;
}
static string DecryptNoKey(string fraze) {
string output = "";
for (int rot = 1; rot <= 26; rot++) {
output += $"Rot{rot}: {Decrypt(fraze, rot)} \n";
}
return output;
}
}
}