Skip to content

Commit

Permalink
feat: add base64 encode and decode
Browse files Browse the repository at this point in the history
  • Loading branch information
nguyenmphu committed Oct 24, 2023
1 parent 3ad28fb commit ad38c67
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 0 deletions.
34 changes: 34 additions & 0 deletions Base64-Encode-Decode/README.md
Original file line number Diff line number Diff line change
@@ -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
```
24 changes: 24 additions & 0 deletions Base64-Encode-Decode/base64_encode_decode.py
Original file line number Diff line number Diff line change
@@ -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))

0 comments on commit ad38c67

Please sign in to comment.