Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@tunelko
Last active January 10, 2020 21:35
Show Gist options
  • Star 5 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save tunelko/49b7e64c1688d62d0ecd to your computer and use it in GitHub Desktop.
Save tunelko/49b7e64c1688d62d0ecd to your computer and use it in GitHub Desktop.
weird_encodings
import base64
import sys
pt = sys.argv[1]
type_encoding = sys.argv[2]
atom128 = "/128GhIoPQROSTeUbADfgHijKLM+n0pFWXY456xyzB7=39VaqrstJklmNuZvwcdEC"
megan35 = "3GHIJKLMNOPQRSTUb=cdefghijklmnopWXYZ/12+406789VaqrstuvwxyzABCDEF5"
zong22 = "ZKj9n+yf0wDVX1s/5YbdxSo=ILaUpPBCHg8uvNO4klm6iJGhQ7eFrWczAMEq3RTt2"
hazz15 = "HNO4klm6ij9n+J2hyf0gzA8uvwDEq3X1Q7ZKeFrWcVTts/MRGYbdxSo=ILaUpPBC5"
b = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
class B64weird_encodings:
def __init__(self, translation):
b = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
self.srch = dict(zip(b, translation))
self.revlsrch = dict(zip(translation, b))
def encode(self, pt):
global srch
b64 = base64.b64encode(pt)
r = "".join([self.srch[x] for x in b64])
return r
def decode(self, code):
global revlsrch
b64 = "".join([self.revlsrch[x] for x in code])
r = base64.b64decode(b64)
return r
def encode(variant, pt):
encoder = B64weird_encodings(variant)
return encoder.encode(pt)
def decode(variant, code):
try:
encoder = B64weird_encodings(variant)
return encoder.decode(code)
except KeyError:
return "Not valid"
except TypeError:
return "Padding iccorrect"
if type_encoding == 'enc':
print 'base64: ', encode(b, pt)
print 'atom128: ', encode(atom128, pt)
print 'megan35: ', encode(megan35, pt)
print 'hazz15: ', encode(hazz15, pt)
print 'zong22: ', encode(zong22, pt)
elif type_encoding == 'dec':
print 'base64: ', decode(b, pt)
print 'atom128: ', decode(atom128, pt)
print 'megan35: ', decode(megan35, pt)
print 'hazz15: ' , decode(hazz15, pt)
print 'zong22: ', decode(zong22, pt)
else:
print "no valid type of encoding"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment