Skip to content

Commit 3b54d8f

Browse files
Matthew HolmesMatthew Holmes
authored andcommitted
adding lab_5
1 parent 24eac05 commit 3b54d8f

File tree

5 files changed

+207
-0
lines changed

5 files changed

+207
-0
lines changed
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
from crypt import methods
2+
from email import message
3+
from flask import Flask, render_template, request
4+
5+
app = Flask(__name__)
6+
7+
8+
def rot_cipher_encrypt(message: str, shift: int):
9+
encrypt_dict = {
10+
'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6,
11+
'g': 7, 'h': 8, 'i': 9, 'j': 10, 'k': 11, 'l': 12,
12+
'm': 13, 'n': 14, 'o': 15, 'p': 16, 'q': 17, 'r': 18,
13+
's': 19, 't': 20, 'u': 21, 'v': 22, 'w': 23, 'x': 24,
14+
'y': 25, 'z': 26,
15+
}
16+
decrypt_dict = {
17+
0: 'z', 1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: 'f',
18+
7: 'g', 8: 'h', 9: 'i', 10: 'j', 11: 'k', 12: 'l', 13: 'm',
19+
14: 'n', 15: 'o', 16: 'p', 17: 'q', 18: 'r', 19: 's', 20: 't',
20+
21: 'u', 22: 'v', 23: 'w', 24: 'x', 25: 'y',
21+
}
22+
encrypted_text = ''
23+
for letter in message:
24+
if letter == ' ':
25+
encrypted_text += letter
26+
else:
27+
num = encrypt_dict[letter]
28+
num = ((num + shift) % 26)
29+
encrypted_text += decrypt_dict[num]
30+
return encrypted_text
31+
32+
33+
def rot_cipher_decrypt(message: str, shift: int):
34+
encrypt_dict = {
35+
'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6,
36+
'g': 7, 'h': 8, 'i': 9, 'j': 10, 'k': 11, 'l': 12,
37+
'm': 13, 'n': 14, 'o': 15, 'p': 16, 'q': 17, 'r': 18,
38+
's': 19, 't': 20, 'u': 21, 'v': 22, 'w': 23, 'x': 24,
39+
'y': 25, 'z': 26,
40+
}
41+
decrypt_dict = {
42+
0: 'z', 1: 'a', 2: 'b', 3: 'c', 4: 'd', 5: 'e', 6: 'f',
43+
7: 'g', 8: 'h', 9: 'i', 10: 'j', 11: 'k', 12: 'l', 13: 'm',
44+
14: 'n', 15: 'o', 16: 'p', 17: 'q', 18: 'r', 19: 's', 20: 't',
45+
21: 'u', 22: 'v', 23: 'w', 24: 'x', 25: 'y',
46+
}
47+
decrypt_text = ''
48+
for letter in message:
49+
if letter == ' ':
50+
decrypt_text += letter
51+
else:
52+
num = encrypt_dict[letter]
53+
num = ((num - shift) % 26)
54+
decrypt_text += decrypt_dict[num]
55+
return decrypt_text
56+
57+
# message = ''
58+
# encrypted_message = ''
59+
# shift = 13
60+
61+
62+
@app.route('/')
63+
def index():
64+
return render_template('index.html')
65+
66+
67+
@app.route('/encrypt', methods=['POST'])
68+
def encrypt():
69+
70+
shift = int(request.form['shift'])
71+
message = request.form['user_string'].lower()
72+
encrypted_message = rot_cipher_encrypt(message, shift)
73+
74+
# print(message)
75+
76+
return render_template('encrypted.html', encrypted_message=encrypted_message, shift=shift)
77+
78+
79+
@app.route('/decrypt', methods=['POST'])
80+
def decrypt():
81+
shift = int(request.form['shift'])
82+
message = request.form['decrypt_message'].lower()
83+
decrypt_string = rot_cipher_decrypt(message, shift)
84+
85+
return render_template('decrypt.html', decrypt_string=decrypt_string, shift=shift)
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
body {
2+
text-align: center;
3+
}
4+
5+
header {
6+
display: flex;
7+
flex-direction: column;
8+
}
9+
10+
a {
11+
padding: 2px;
12+
text-decoration: none;
13+
color: black;
14+
border: 1px solid black;
15+
background-color: rgba(37, 36, 36, 0.295);
16+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7+
<!-- stylesheet -->
8+
<link
9+
rel="stylesheet"
10+
href="{{ url_for('static', filename='style.css') }}"
11+
/>
12+
<title>Decrypt</title>
13+
</head>
14+
<body>
15+
<h3>Your decrypted text is {{decrypt_string}}</h3>
16+
<br />
17+
<a href="/">Click here to encrypt another text</a>
18+
</body>
19+
</html>
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7+
<!-- stylesheet -->
8+
<link
9+
rel="stylesheet"
10+
href="{{ url_for('static', filename='style.css') }}"
11+
/>
12+
<title>Encrypted</title>
13+
</head>
14+
<body>
15+
<h3>{{encrypted_message}}</h3>
16+
17+
<header>
18+
<form action="/decrypt" method="post">
19+
<div>
20+
<input
21+
type="text"
22+
name="decrypt_message"
23+
value="{{encrypted_message}}"
24+
placeholder="Enter the text you would like to decrypt"
25+
/>
26+
</div>
27+
28+
<br />
29+
30+
<div>
31+
<input
32+
type="text"
33+
name="shift"
34+
value="{{shift}}"
35+
placeholder="Enter the shift key"
36+
required
37+
/>
38+
</div>
39+
40+
<br />
41+
42+
<button type="submit">Submit</button>
43+
</form>
44+
</header>
45+
</body>
46+
</html>
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
6+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
7+
<!-- stylesheet -->
8+
<link
9+
rel="stylesheet"
10+
href="{{ url_for('static', filename='style.css') }}"
11+
/>
12+
<title>Rot13</title>
13+
</head>
14+
<body>
15+
<h1>Rot13 Encryption</h1>
16+
<br />
17+
<header>
18+
<form action="/encrypt" method="post">
19+
<div>
20+
<input
21+
type="text"
22+
name="user_string"
23+
placeholder="Enter the text you would like to Encrypt"
24+
/>
25+
</div>
26+
<br />
27+
<div>
28+
<input
29+
type="text"
30+
name="shift"
31+
value="{{shift}}"
32+
placeholder="Enter the shift key"
33+
required
34+
/>
35+
</div>
36+
<br />
37+
<button type="submit">Submit</button>
38+
</form>
39+
</header>
40+
</body>
41+
</html>

0 commit comments

Comments
 (0)