def decrypt(b64cipher_text, passwd): def _good_decipher(fpt): return fpt[-len(_KNOWN_STR):] == _KNOWN_STR ct0 = b64cipher_text.decode('base64') s, ct = ct0[:8], ct0[8:] c = PyCrypto(passwd) fpt = c.decrypt(s, ct) if not _good_decipher(fpt): raise safe.BadPwdException() return fpt[:-len(_KNOWN_STR)]
def encrypt(plain_text, passwd): c = PyCrypto(passwd) s, ct = c.encrypt(plain_text + _KNOWN_STR) return (s + ct).encode('base64')