1+ import sys
2+ def dec ():
3+ print ("this should decode base64 text" )
4+ x = input ("pls input the text: " )
5+ leng = len (x )
6+ count = 0
7+ for i in range (leng - (leng - 2 ), leng , 1 ):
8+ y = x [i ]
9+ if y == "=" :
10+ count -= 1
11+ lett = leng + count
12+ result = ""
13+ l = 0
14+ for i in range (lett ):
15+ string = ''
16+ string += x [i ]
17+ string = string .encode ('utf-8' )
18+ string = '' .join (format (byte , '08b' ) for byte in string )
19+ var = int (string , 2 )
20+ if var >= 65 and var <= 90 :
21+ var -= 65
22+ elif var >= 97 and var <= 122 :
23+ var -= 71
24+ elif var >= 48 and var <= 57 :
25+ var += 4
26+ elif var == 43 :
27+ var += 19
28+ elif var == 47 :
29+ var += 16
30+ else :
31+ print ("something went wrong" )
32+ var = "{0:06b}" .format (var )
33+ result += var
34+ l += 6
35+ length = len (result )
36+ length = int (length / 8 )
37+ result2 = ""
38+ result3 = ""
39+ index = 0
40+ for i in range (0 , length , 1 ):
41+ for j in range (0 , 8 , 1 ):
42+ result2 += result [j + index ]
43+ index += 8
44+ result4 = int (result2 , 2 )
45+ result4 = bytes ([result4 ])
46+ result4 = result4 .decode ("utf-8" )
47+ result3 += result4
48+ result2 = ""
49+ print (result3 )
50+
51+ def enc ():
52+ print ("this should convert text into base64" )
53+ x = input ("input pls right here: " )
54+ x = x .encode ('utf-8' )
55+ x = '' .join (format (byte , '08b' ) for byte in x )
56+ print (x )
57+ leng = len (x )
58+ print (len (x ))
59+ mod = leng % 6
60+ if mod != 0 :
61+ pad = leng % 6
62+ for _ in range (pad ):
63+ x += "00"
64+ length = len (x )
65+ lett = int (length / 6 )
66+ result = ""
67+ l = 0
68+ for _ in range (lett ):
69+ string = ''
70+ for i in range (l , l + 6 , 1 ):
71+ string += x [i ]
72+ var = int (string , 2 )
73+ if var >= 0 and var <= 25 :
74+ var += 65
75+ elif var >= 26 and var <= 51 :
76+ var += 71
77+ elif var >= 52 and var <= 61 :
78+ var -= 4
79+ elif var == 62 :
80+ var -= 19
81+ elif var == 63 :
82+ var -= 16
83+ else :
84+ print ("something went wrong" )
85+ var = bytes ([var ])
86+ letter = var .decode ()
87+ result += letter
88+ l += 6
89+ for _ in range (mod ):
90+ result += "="
91+ print (result )
92+ if __name__ == "__main__" :
93+ print ("1: encode, 2: decode" )
94+ varname = input ("enter choice: " )
95+ if varname == "1" :
96+ enc ()
97+ elif varname == "2" :
98+ dec ()
99+ else :
100+ print ("please enter a real option mf >:(" )
101+ sys .exit ()
0 commit comments