From 15eea9c1b29d781ba9601e212c1e429264ea2e57 Mon Sep 17 00:00:00 2001 From: nguyenmphu Date: Tue, 24 Oct 2023 20:05:30 +0700 Subject: [PATCH] Add base64 encode and decode --- Base64-Encode-Decode/README.md | 34 ++++++++++++++++++++ Base64-Encode-Decode/base64_encode_decode.py | 24 ++++++++++++++ 2 files changed, 58 insertions(+) create mode 100644 Base64-Encode-Decode/README.md create mode 100644 Base64-Encode-Decode/base64_encode_decode.py diff --git a/Base64-Encode-Decode/README.md b/Base64-Encode-Decode/README.md new file mode 100644 index 00000000..b6a29aa3 --- /dev/null +++ b/Base64-Encode-Decode/README.md @@ -0,0 +1,34 @@ +# Base64 Encode And Decode +## Usage +``` bash +usage: Base64 [-h] [-d | --decode | --no-decode] text + +Base64 encode adn decode string + +positional arguments: + text The text to decode or encode + +options: + -h, --help show this help message and exit + -d, --decode, --no-decode + Decode text (default: False) +``` + +## Example +### Encode +``` +python3 base64_encode_decode.py "abcxyz 123" +``` +Result: +``` +YWJjeHl6IDEyMw== +``` + +### Decode: +``` +python3 base64_encode_decode.py -d YWJjeHl6IDEyMw== +``` +Result: +``` +abcxyz 123 +``` diff --git a/Base64-Encode-Decode/base64_encode_decode.py b/Base64-Encode-Decode/base64_encode_decode.py new file mode 100644 index 00000000..4505e3f6 --- /dev/null +++ b/Base64-Encode-Decode/base64_encode_decode.py @@ -0,0 +1,24 @@ +import base64 +from argparse import ArgumentParser, BooleanOptionalAction + + +def decode(encoded: str) -> str: + return base64.b64decode(encoded).decode() + + +def encode(text: str) -> str: + return base64.b64encode(text.encode()).decode() + + +if __name__ == "__main__": + parser = ArgumentParser( + prog="Base64", + description="Base64 encode adn decode string", + ) + parser.add_argument("-d", "--decode", action=BooleanOptionalAction, default=False, type=bool, help="Decode text") + parser.add_argument("text", type=str, help="The text to decode or encode") + args = parser.parse_args() + if args.decode: + print(decode(args.text)) + else: + print(encode(args.text))