密码库

william_blake_crypto的Python项目详细描述


威廉布莱克密码

这个包裹可以

  • 将yaml对象转换为加密字符串对象并返回,
  • 将yaml文件转换为加密文件并返回,
  • 将加密文件解密到yaml对象,
  • 并且可以为这些目的生成、输入和加载密钥。

除了其他安全措施外,还应使用此包,如 在带有加密分区的操作系统上运行(例如 和禁用ssh密码访问。

使用此模块,应安全地生成和保存密钥。

在生产中,假设需要健壮的安全性,因此 使用此包可以将密钥请求为手动输入,即 当脚本启动时由用户提供,然后脚本可以 使用此密钥,该密钥仅存在于易失性内存中 脚本,用于将加密文件解密为yaml对象;例如, 加密的配置文件。

在开发过程中,可以生成密钥并将其保存到文件中,如 ~/.config/william_blake_crypto/key,可由 不需要手动输入的包,但这不是安全的 这样的方法应该只用于开发,而不是生产。

设置

pip install william_blake_crypto

生成密钥

>>>importwilliam_blake_cryptoaswbc>>>wbc.generate_key()b'rojTAcN-Tjy6W43BUozbFIhIA2jq076KysjUj8l8N4E='

因此,对于生产,这个密钥可以保存到一个文件中,比如 ~/.config/william_blake_crypto/key。文件的确切内容 在本例中如下:

rojTAcN-Tjy6W43BUozbFIhIA2jq076KysjUj8l8N4E=

输入键(用于生产)

>>>importwilliam_blake_cryptoaswbc>>>wbc.input_key()key:>>>wbc._keyb'rojTAcN-Tjy6W43BUozbFIhIA2jq076KysjUj8l8N4E='

其思想是这个密钥被安全地存储(可能在veracrypt中 卷文件)并复制粘贴到脚本所在的终端 在请求密钥时启动。这确保了密钥的存在。 仅在与正在运行的脚本关联的易失性内存中,并且 不能作为纯文本文件访问(可由 饼干)。

加载键(用于开发)

对于开发,生成密钥(如上所述)并将其保存到 文件,例如~/.config/william_blake_crypto/key,它是 此密钥用于开发的默认位置 仅(尽管此密钥的路径可以指定为 函数load_key

>>>importwilliam_blake_cryptoaswbc>>>wbc.load_key()>>>wbc._keyb'rojTAcN-Tjy6W43BUozbFIhIA2jq076KysjUj8l8N4E='

加密和解密yaml对象

>>>importwilliam_blake_cryptoaswbc>>>wbc.load_key()>>>config={"passcode":12345}>>>token=wbc.encrypt_yaml(content=config)>>>tokenb'gAAAAABbhGbVUVbbneKoz7wvV8aOF9K6r1hSNQvDexfAflIML33iyNa_Nf7Nm6g6syIXBkyANTHw3RlGMIsCgDligdts78a6VxrBaxbOIhGqSkzNtA5GDK4='>>>wbc.decrypt_yaml(token=token){'passcode':12345}

将yaml文件转换为加密的yaml文件并将其解密

$ echo"{'passcode': 12345}" > test.yaml
>>>importwilliam_blake_cryptoaswbc>>>wbc.load_key()>>>wbc.yaml_file_to_encrypted_file(filepath_yaml="test.yaml",filepath_encrypted="test.cyaml")
$ cat test.cyaml
b'gAAAAABbhGzog6kLduLbflVx49jUD6WmIuRw8h0V7X25LrW6LnKjxbLN0pE7jMMeY9qaeGysjLsz-XA8EZ_LQVGslXhicpxLtt9K0CYFFYv2UZ3XEDt8oEI='
>>>importwilliam_blake_cryptoaswbc>>>wbc.load_key()>>>config=wbc.encrypted_file_to_yaml(filepath="test.cyaml")>>>config{'passcode':12345}

将加密的yaml文件转换为yaml文件

>>>importwilliam_blake_cryptoaswbc>>>wbc.load_key()>>>wbc.encrypted_file_to_yaml_file(filepath_yaml="test2.yaml",filepath_encrypted="test.cyaml")
$ cat test2.yaml
{passcode: 12345}

未来

正在考虑使用基于时间的一次性密码(totp)的方法。 代替静态密钥,可能使用 che_guevara_otp

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

推荐PyPI第三方库


热门话题
具有未知数量条件的java If语句   java如何在Spark中使用两个“条件”进行过滤?   雅加达ee为ColdFusion提供的最佳Java ee服务器   java如何在jersey的MessageBodyWriter方法中获取writeTo中的anotations值?   java从脚本文件调用jar文件中的函数   java在执行insert语句后,如何获得id值为的语句?   在OS X上设置OpenCV Java绑定   java使用for循环遍历数组x。以字符串形式返回x的元素,其中每个元素由一个空格分隔   ApacheiClientBuilder为Algolia Java创建的APIClient是线程安全的吗?   java在DFS/BFS算法中获取邻居时避免内存分配?   java使用AES/CBC/PKCS5P加密大文件(2GB)   允许保存/加载列布局的Java DB网格组件   队列大小为1的java Spring调度   跑步带有Java参数的exe   java正则表达式将所有“<”和“>”标记替换为“&lt;”及“&gt;”在<<![CDATA]>标签?   java何时同步变量?