Add decode function to base16.py (#5575)

* Add decode function

* Update base16.py

* Update base16.py

* Update base16.py

* Made the line shorter

* Made another line shorter
This commit is contained in:
Rohan R Bharadwaj 2021-10-26 18:53:38 +05:30 committed by GitHub
parent 827b8f04a4
commit 6fcefc0453
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -4,6 +4,7 @@ import base64
def encode_to_b16(inp: str) -> bytes:
"""
Encodes a given utf-8 string into base-16.
>>> encode_to_b16('Hello World!')
b'48656C6C6F20576F726C6421'
>>> encode_to_b16('HELLO WORLD!')
@ -11,9 +12,23 @@ def encode_to_b16(inp: str) -> bytes:
>>> encode_to_b16('')
b''
"""
encoded = inp.encode("utf-8") # encoded the input (we need a bytes like object)
b16encoded = base64.b16encode(encoded) # b16encoded the encoded string
return b16encoded
# encode the input into a bytes-like object and then encode b16encode that
return base64.b16encode(inp.encode("utf-8"))
def decode_from_b16(b16encoded: bytes) -> str:
"""
Decodes from base-16 to a utf-8 string.
>>> decode_from_b16(b'48656C6C6F20576F726C6421')
'Hello World!'
>>> decode_from_b16(b'48454C4C4F20574F524C4421')
'HELLO WORLD!'
>>> decode_from_b16(b'')
''
"""
# b16decode the input into bytes and decode that into a human readable string
return base64.b16decode(b16encoded).decode("utf-8")
if __name__ == "__main__":