2018-11-03 20:08:13 +00:00
|
|
|
import base64
|
|
|
|
|
2019-10-05 05:14:13 +00:00
|
|
|
|
2021-11-02 10:10:25 +00:00
|
|
|
def base85_encode(string: str) -> bytes:
|
|
|
|
"""
|
|
|
|
>>> base85_encode("")
|
|
|
|
b''
|
|
|
|
>>> base85_encode("12345")
|
|
|
|
b'0etOA2#'
|
|
|
|
>>> base85_encode("base 85")
|
|
|
|
b'@UX=h+?24'
|
|
|
|
"""
|
|
|
|
# encoded the input to a bytes-like object and then a85encode that
|
|
|
|
return base64.a85encode(string.encode("utf-8"))
|
|
|
|
|
|
|
|
|
|
|
|
def base85_decode(a85encoded: bytes) -> str:
|
|
|
|
"""
|
|
|
|
>>> base85_decode(b"")
|
|
|
|
''
|
|
|
|
>>> base85_decode(b"0etOA2#")
|
|
|
|
'12345'
|
|
|
|
>>> base85_decode(b"@UX=h+?24")
|
|
|
|
'base 85'
|
|
|
|
"""
|
|
|
|
# a85decode the input into bytes and decode that into a human readable string
|
|
|
|
return base64.a85decode(a85encoded).decode("utf-8")
|
2019-10-05 05:14:13 +00:00
|
|
|
|
2018-11-03 20:08:13 +00:00
|
|
|
|
2019-10-05 05:14:13 +00:00
|
|
|
if __name__ == "__main__":
|
2021-11-02 10:10:25 +00:00
|
|
|
import doctest
|
|
|
|
|
|
|
|
doctest.testmod()
|