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中,encryptdecrypt的输出是 bytes。如果从字符串输入开始,则可以转换 使用.decode('utf8')

    decrypt输出
    mystring = decrypt('password', ciphertext).decode('utf8')
    
  • 更多documentation and examples

  • 较新版本可以从以前的版本中解密数据,但是数据 由较新(主要)版本加密的不能由较早的版本解密 代码(相反,要求用户更新到 最新版本)。

  • (c)2012-2015年安德鲁·库克,andrew@acooke.org; 2013年d10ndavid@bitinvert.com。 发布到公共领域供任何使用,但绝对没有保证。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何使用Java解析Html并将结果作为字符串   java我的switch语句有点问题   java在注册后为新用户生成唯一的用户ID   Java 8 lambda表达式字节码一致性   Java应用程序的playframework类型安全控制台配置   java将mxGraph导出到SVG(或任何类型的图像)   业务逻辑之前的java执行方法   LinkedList输出null的Java实现   java需要帮助检查值是否为1   java Delaunay三角形点连通性?   使用setImageResource的java相对路径   java获取方法所消耗的时间   正则表达式当字符串不匹配时,为什么javagrok返回最后一次成功匹配?   java在Spring批处理作业之后触发Spring集成出站适配器   集合Java按降序遍历映射集,返回所需的输出   代表设计模式在Swagger生成代码中的java意义?   如何使用Java代码将Sql Server的数据(行)实时复制到MySql中?