方便存储密码/机密的实用程序。
v-crypt的Python项目详细描述
调色板材质设计
方便存储密码/机密的实用程序。它使用cryptography模块中的Fernet
,而不是重新设计轮子。
FERNET是一种对称加密,在CBC模式下使用128位AES,在PKCS7中填充HMAC,使用SHA256进行身份验证。您可以阅读更多关于它的信息here。
为什么是V型密码?
在python中处理秘密和密码总是很烦人的,特别是当你和其他人一起工作时。我们发现对我们最有效的是:
- 创建一个主专用密码(从git中忽略)
- 将类似dict的文件与其他密码一起加密
这个模块提供类Cipher
来轻松处理这个问题。
这个模块的思想是能够用加密的秘密创建json
或yaml
。密钥将是公共的,但值不会是公共的。这样您就可以将机密字典存储在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")
定制
有三个参数可自定义密码:
- secrets\u文件:包含机密的文件的路径。可以是
json
或yaml
。 - filename_master_password:带有主密码的文件路径
- environ变量名:如果通过,则允许从environ变量读取主密码。
For
yaml
you need to installpyyaml
例如,您可以这样做:
cipher=Cipher(secrets_file="data/secrets.yaml",filename_master_password="data/master.secret")
这将允许您将master.password
和secrets.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]测试