from base64 import b64encode from passlib.hash import bcrypt import hashlib import textwrap def base64(text) -> str: return b64encode(str(text).encode("utf8")).decode("utf8") def sha256(text) -> str: return hashlib.sha256(str(text).encode("utf-8")).hexdigest() def indent(text: str, prefix: str, predicate=None) -> str: text = str(text) if predicate == "not_first": first_line = text.splitlines()[0] predicate = lambda ln: ln.strip() != first_line return textwrap.indent(textwrap.dedent(text), prefix, predicate) def hash_bcrypt(secret: str, salt: str) -> str: return bcrypt.using(salt=str(salt)).hash(str(secret))