22 lines
700 B
Python
22 lines
700 B
Python
import base64, binascii, codecs, argparse, pathlib
|
|
|
|
def encode_layers(s: str) -> str:
|
|
l1 = base64.b64encode(s.encode()).decode() # base64
|
|
l2 = codecs.encode(l1, 'rot_13') # rot13
|
|
l3 = binascii.hexlify(l2.encode()).decode() # hex
|
|
lf = base64.b64encode(l3.encode()).decode() # base64
|
|
return lf
|
|
|
|
def main():
|
|
ap = argparse.ArgumentParser()
|
|
ap.add_argument("--flag", required=True,
|
|
help="Flag string to wrap.")
|
|
ap.add_argument("--out", default="message.txt")
|
|
args = ap.parse_args()
|
|
|
|
out = encode_layers(args.flag)
|
|
pathlib.Path(args.out).write_text(out + "\n")
|
|
print(out)
|
|
|
|
if __name__ == "__main__":
|
|
main() |