方便存储密码/机密的实用程序。

v-crypt的Python项目详细描述


调色板材质设计

Build Statuscodecov

方便存储密码/机密的实用程序。它使用cryptography模块中的Fernet,而不是重新设计轮子。

FERNET是一种对称加密,在CBC模式下使用128位AES,在PKCS7中填充HMAC,使用SHA256进行身份验证。您可以阅读更多关于它的信息here

为什么是V型密码?

在python中处理秘密和密码总是很烦人的,特别是当你和其他人一起工作时。我们发现对我们最有效的是:

  • 创建一个主专用密码(从git中忽略)
  • 将类似dict的文件与其他密码一起加密

这个模块提供类Cipher来轻松处理这个问题。

这个模块的思想是能够用加密的秘密创建jsonyaml。密钥将是公共的,但值不会是公共的。这样您就可以将机密字典存储在git中,并轻松地与在同一项目中工作的其他人共享它们。您只需要共享master.password一次。所有其他的密码/秘密都会被git跟踪。

安装

您可以通过运行以下命令将其与pip一起安装:

pip install v-crypt

用法

fromv_cryptimportCipher# Create a cipher instancecipher=Cipher()# Create a new master passwordcipher.create_password()# Store a secretcipher.save_secret("secret","I like python")# Retrive a secretcipher.get_secret("secret")

定制

有三个参数可自定义密码:

  1. secrets\u文件:包含机密的文件的路径。可以是jsonyaml
  2. filename_master_password:带有主密码的文件路径
  3. environ变量名:如果通过,则允许从environ变量读取主密码。

For yaml you need to install pyyaml

例如,您可以这样做:

cipher=Cipher(secrets_file="data/secrets.yaml",filename_master_password="data/master.secret")

这将允许您将master.passwordsecrets.yaml存储在文件夹data中。

没有更多的定制,因为想法是保持简单。

将IT集成到其他项目中

我们通常有一个或多个带有实用程序的python文件,例如utilities.py

为了使用v_crypt,我们初始化那里的cipher,然后创建一个get_secret伪函数来调用密码。

fromv_cryptimportCiphercipher=Cipher(secrets_file="data/secrets.yaml",filename_master_password="data/master.secret")defget_secret(key):returncipher.get_secret(key)

然后您可以在其他地方使用它:

importutilitiesasuu.get_secret("secret")

作者

许可证

此存储库的内容是根据MIT授权的。

命名

分支和提交使用一些前缀来更好地组织所有内容。

分支

  • f/:功能
  • r/:发布
  • h/:热修复

提交

  • [new]新功能
  • [fix]修复
  • [ref]重构
  • [pyl]pylint改进
  • [tst]测试

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

推荐PyPI第三方库


热门话题
java限制C++代码访问JNI中的某些类   Android上的java DateFormat:不可解析的日期   通过json进行java迭代,并为其他请求调用多个API   Netbeans中的java JavaFX项目引发异常“输入流不能为null”   多线程Java newFixedThreadPool解释   |在java字符串中无法识别。split()方法   Java中的原始包装器类是否被视为引用类型?   Java swing。如何在intellij idea GUI设计工具中重写组件方法   数组乘矩阵   java将30GB的XML文件分割成小块XML   java通过一棵树递归找到一个节点,并返回指向该节点的路径   java如何将可观察的<Observable<List<T>>转换为可观察的<List<T>>   使用java在web服务器上更改php文件中的字符串?   java希望开发像tomcat这样的servlet容器   java希望提高编程的数学技能