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

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允许具有不同父类的类扩展类,而无需多重继承   java如何创建动态化的JScrollPane w/JPanel作为客户端?   java如何组织和命名包   在Java中读取属性文件   java无法解释的Android意图行为   在Java中动态执行多个BPEL文件的部署   ssl Java 6 SNI(服务器名称指示)?   java我们可以使用Robot框架自动化web和移动应用程序来执行并行执行   java for star pettern的循环   java为什么BinaryReader在线程中,从netty读取错误的数据包?   在java中将华氏度转换为摄氏度   使用Spark和java处理空值和引号编写CSV文件   Java中已排序日期到块的列表   visual studio代码VSCode Java不是linting或自动完成局部变量,而是自动完成Java快捷方式,如“sysout”