Python2.7和3的简单、安全的加密和解密
simple-crypt的Python项目详细描述
简单地窖是做什么的?
简单加密加密和解密数据。它有两个函数,encrypt 以及decrypt:
from simplecrypt import encrypt, decrypt ciphertext = encrypt('password', plaintext) plaintext = decrypt('password', ciphertext)
就这样。您可以在上看到实现 github。
为什么我要用简单的地窖?
- 它使用标准的、众所周知的算法,紧跟着 建议here。
- 已建立的、有效的pycrypto 库提供算法实现(使用的密码是AES256)。
- 它包括一个支票(一个带有sha256的hmac),当密文出现时发出警告。 数据被修改。
- 当质量低劣时,它尽量使事情安全 使用密码(pbkdf2和sha256,256位随机盐 (从3.0.0版的128位增加)和100000发子弹 (从4.0.0版的10000增加)。但这并不意味着 你应该使用糟糕的密码!
- 使用库而不是编写自己的代码意味着 对同一问题的解决方法较少。这意味着更多的机会 查找错误,这意味着更可靠、更安全的代码。
- 如果简单的crypt确实有一个bug,那么在 密文数据将有助于支持升级路径(我不能保证 完全向后支持,因为任何解决方案都依赖于 攻击,但至少需要的信息存在)。
我还应该知道什么?
您还必须安装pycrypto。注意pycrypto具有 用c编写的部分需要完整的python安装。在某些unix上 系统可能意味着从 包管理器。
在python 3中,encrypt和decrypt的输出是 bytes。如果从字符串输入开始,则可以转换 使用.decode('utf8'):
从decrypt输出mystring = decrypt('password', ciphertext).decode('utf8')
较新版本可以从以前的版本中解密数据,但是数据 由较新(主要)版本加密的不能由较早的版本解密 代码(相反,要求用户更新到 最新版本)。
(c)2012-2015年安德鲁·库克,andrew@acooke.org; 2013年d10n,david@bitinvert.com。 发布到公共领域供任何使用,但绝对没有保证。