Skip to content

Commit 5f7eea4

Browse files
committed
Crypto Challenges started
1 parent a8db985 commit 5f7eea4

File tree

8 files changed

+89
-4
lines changed

8 files changed

+89
-4
lines changed

.gitignore

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
misc/painbin/challenge/creds.py
22
__pycache__
33
.vscode
4-
*.db
4+
*.db
5+
.sour

crypto/README.md

+4-3
Original file line numberDiff line numberDiff line change
@@ -3,13 +3,14 @@
33
## Easy Challenges
44
| Challenge Name | Description | Hint
55
|:-- | :-- | :---
6-
| | |
7-
6+
| [rome](rome)| Simple Caesar Cipher with the flag | Run the text thry a caesar cipher
7+
| [rome-but-harder](rome-but-harder) | Base64 wuth flag and caesar cipher and reversed | Cyberchef and cryptii
8+
| [rail-fence](rail-fence) | The flag is there but not. There must be some type of pattern. This flag needs to be submitted in upper case. | Something about a fence cipher
89

910
## Medium Challenges
1011
| Challenge Name | Description | Hint
1112
|:-- | :-- | :---
12-
| | |
13+
| [XORED-Message](XORED-Message) | |
1314

1415

1516
## Hard Challenges

crypto/XORED-Message/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# XORED-Message

crypto/rail-fence/README.md

+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
# rail-fence
2+
3+
`j4cgpcr1n31Z1ht{l30Z4C3}ffrgr`
4+
5+
## Solution
6+
* Run the text thru a railfence cipher
7+
8+
## Resources
9+
* https://github.com/CrypTools/RailfenceCipher

crypto/rail-fence/challenge/flag.txt

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
j4cgpcr1n31Z1ht{l30Z4C3}ffrgr
+70
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
# Code modified from https://github.com/CrypTools/RailfenceCipher
2+
def encode(text, key):
3+
fence = ["" for i in range(key)]
4+
rail = 0
5+
var = 1
6+
7+
for char in text:
8+
fence[rail] += char
9+
rail += var
10+
11+
if rail == key-1 or rail == 0:
12+
var = -var
13+
14+
return "".join(fence)
15+
16+
17+
18+
# https://github.com/CrypTools/RailfenceCipher/blob/master/py/decrypt.py
19+
def decrypt(s,n):
20+
fence = [[] for i in range(n)]
21+
rail = 0
22+
var = 1
23+
24+
for char in s:
25+
fence[rail].append(char)
26+
rail += var
27+
28+
if rail == n-1 or rail == 0:
29+
var = -var
30+
31+
rFence = [[] for i in range(n)]
32+
33+
i = 0
34+
l = len(s)
35+
s = list(s)
36+
for r in fence:
37+
for j in range(len(r)):
38+
rFence[i].append(s[0])
39+
s.remove(s[0])
40+
i += 1
41+
42+
rail = 0
43+
var = 1
44+
r = ''
45+
for i in range(l):
46+
r += rFence[rail][0]
47+
rFence[rail].remove(rFence[rail][0])
48+
rail += var
49+
50+
if rail == n-1 or rail == 0:
51+
var = -var
52+
53+
return r
54+
55+
56+
57+
58+
# Ensure that the text being encoded does not have a space character
59+
if __name__ == "__main__":
60+
61+
msg = "jctf{r41lf3nc30rZ1gZ4gC1ph3r}"
62+
key = 4
63+
64+
flag = encode(f"{msg}", key)
65+
solved = decrypt(flag, key)
66+
print(f"flag = {flag}")
67+
print(f"msg = {msg}")
68+
print(f"flag = {solved} (but solved)")
69+
70+

crypto/rome-but-harder/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# rome-but-harder

crypto/rome/README.md

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
# rome

0 commit comments

Comments
 (0)