mirror of
https://github.com/TheAlgorithms/Python.git
synced 2024-11-30 16:31:08 +00:00
split into usable functions and added docstrings for base32 cipher (#5466)
* split into usable functions and added docstrings * Simplified code Co-authored-by: Christian Clauss <cclauss@me.com> * Simplified code Co-authored-by: Christian Clauss <cclauss@me.com> Co-authored-by: Christian Clauss <cclauss@me.com>
This commit is contained in:
parent
061614880d
commit
d82cf5292f
|
@ -1,13 +1,42 @@
|
||||||
import base64
|
import base64
|
||||||
|
|
||||||
|
|
||||||
def main() -> None:
|
def base32_encode(string: str) -> bytes:
|
||||||
inp = input("->")
|
"""
|
||||||
encoded = inp.encode("utf-8") # encoded the input (we need a bytes like object)
|
Encodes a given string to base32, returning a bytes-like object
|
||||||
b32encoded = base64.b32encode(encoded) # b32encoded the encoded string
|
>>> base32_encode("Hello World!")
|
||||||
print(b32encoded)
|
b'JBSWY3DPEBLW64TMMQQQ===='
|
||||||
print(base64.b32decode(b32encoded).decode("utf-8")) # decoded it
|
>>> base32_encode("123456")
|
||||||
|
b'GEZDGNBVGY======'
|
||||||
|
>>> base32_encode("some long complex string")
|
||||||
|
b'ONXW2ZJANRXW4ZZAMNXW24DMMV4CA43UOJUW4ZY='
|
||||||
|
"""
|
||||||
|
|
||||||
|
# encoded the input (we need a bytes like object)
|
||||||
|
# then, b32encoded the bytes-like object
|
||||||
|
return base64.b32encode(string.encode("utf-8"))
|
||||||
|
|
||||||
|
|
||||||
|
def base32_decode(encoded_bytes: bytes) -> str:
|
||||||
|
"""
|
||||||
|
Decodes a given bytes-like object to a string, returning a string
|
||||||
|
>>> base32_decode(b'JBSWY3DPEBLW64TMMQQQ====')
|
||||||
|
'Hello World!'
|
||||||
|
>>> base32_decode(b'GEZDGNBVGY======')
|
||||||
|
'123456'
|
||||||
|
>>> base32_decode(b'ONXW2ZJANRXW4ZZAMNXW24DMMV4CA43UOJUW4ZY=')
|
||||||
|
'some long complex string'
|
||||||
|
"""
|
||||||
|
|
||||||
|
# decode the bytes from base32
|
||||||
|
# then, decode the bytes-like object to return as a string
|
||||||
|
return base64.b32decode(encoded_bytes).decode("utf-8")
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
test = "Hello World!"
|
||||||
|
encoded = base32_encode(test)
|
||||||
|
print(encoded)
|
||||||
|
|
||||||
|
decoded = base32_decode(encoded)
|
||||||
|
print(decoded)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user