与GPG兼容的对称密钥加密和解密

tinygpgs的Python项目详细描述


tinygpgs是一个快速模块和独立的python2脚本 使用OpenPGP的对称密钥(基于密码短语)加密和解密 与GPG(GnuPG)兼容的文件格式。在

使用

用于加密的文件类API用法:

import getpass
from tinygpgs.file import GpgSymmetricFile
f = GpgSymmetricFile('FILE.bin.gpg', 'wb', getpass.getpass())
try:
  f.write('Hello, World!\n')
  f.write('This is the end.\n')
finally:
  f.close()

用于解密的文件类API用法:

^{pr2}$

对于加密,它还提供了encryptedfile1.1.1接口,以方便使用 迁移:

import getpass
from tinygpgs.file import EncryptedFile  # Just for compatibility.
f = EncryptedFile('FILE.bin.gpg', mode='wb', passphrase=getpass.getpass())
try:
  f.write('Hello, World!\n')
  f.write('This is the end.\n')
finally:
  f.close()

命令行工具用法:

$ python -m tinygpgs -c FILE.bin                  # Encrypt.
Enter passphrase:
$ python -m tinygpgs -d <FILE.bin.gpg >FILE2.bin  # Decrypt.
Enter passphrase:
$ cmp FILE.bin FILE2.bin

命令行工具有许多与gpg(1)相同的标志,因此可以使用 python -m tinygpgs作为对对称的gpg的替换 密钥加密和解密。在

特点

tinygpgs支持所有密码、哈希、字符串到键模式、输出格式 (二进制和ASCII装甲)和OpenPGP RFC中用于加密和解密的压缩方法。 所有这些设置都可以在类的关键字参数中配置 构造函数和命令行标志。在

tinygpgs不支持公钥加密(例如加密、签名 和密钥生成)。在

安装

要获取模块,请运行以下命令:

$ python -m pip install tinygpgs pycrypto

请注意,tinygpgs在没有pycrypto的情况下也可以工作,但是 pycrypto它的工作速度更快,甚至可以与gpg(1)媲美:小于1.37 更慢的。在

获取命令行工具的独立版本(单个可执行文件 文件,包含嵌入的模块),请参阅 https://github.com/pts/tinygpgs。在

您需要Python>;=2.4才能将tinygpgs用作脚本或模块。已经过测试 包括2.4和3.8,以及介于两者之间的所有主要版本。在

更多信息

https://github.com/pts/tinygpgs。在

许可证

tinygpgs是一款根据麻省理工学院授权发布的免费软件。没有 担保。使用风险自负。在

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

推荐PyPI第三方库


热门话题
java无法将自定义数据类型转换为字符串?   JavaLog4j和appender,这个Log4j定义正确吗?   用于换行的java Android Eclipse拆分   与某个方法关联的java启用/禁用JButton   java小部件列表视图加载视图   java国家/地区名称中的正则表达式   从Java调用Kotlin时,如何获取错误的行号?   java将视图传递给AsyncTask以访问findViewById   java SQL性能:多个绑定还是绑定到一个SQL变量以供重用?   BluetoothAdapter上的安卓 Java NullPointerException。isEnabled()   在clojure中取消引用java方法   JAVA网SocketException:IP_添加_成员身份失败(硬件筛选器不足?)   java从类对象的方法接收nullpointer异常   java使用for循环创建多个对象   java无法使用NTLM身份验证apache camel cxf   java Eclipse不喜欢@Override注释   java Spark SQL模拟红移(Oracle)“系统日期”或“当前日期”