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)]