SRNI-2005/ctf
0
1import base642import codecs3 4from CTFd.utils import string_types5 6 7def hexencode(s):8 if isinstance(s, string_types):9 s = s.encode("utf-8")10 encoded = codecs.encode(s, "hex")11 try:12 encoded = encoded.decode("utf-8")13 except UnicodeDecodeError:14 pass15 return encoded16 17 18def hexdecode(s):19 decoded = codecs.decode(s, "hex")20 try:21 decoded = decoded.decode("utf-8")22 except UnicodeDecodeError:23 pass24 return decoded25 26 27def base64encode(s):28 if isinstance(s, string_types):29 s = s.encode("utf-8")30 31 encoded = base64.urlsafe_b64encode(s).rstrip(b"\n=")32 try:33 encoded = encoded.decode("utf-8")34 except UnicodeDecodeError:35 pass36 return encoded37 38 39def base64decode(s):40 if isinstance(s, string_types):41 s = s.encode("utf-8")42 43 decoded = base64.urlsafe_b64decode(s.ljust(len(s) + len(s) % 4, b"="))44 try:45 decoded = decoded.decode("utf-8")46 except UnicodeDecodeError:47 pass48 return decoded49 