加密解密工具gpg (GnuPG)

 

GPG即GNU Privacy Guard,它是加密工具PGP(Pretty Good Privacy )的非商业化版本,用于对Email、文件及其他数据的收发进行加密与验证,确保通信数据的可靠性和真实性。
 gpg (GnuPG) 1.4.2

Copyright (C) 2005 Free Software Foundation, Inc.

This program comes with ABSOLUTELY NO WARRANTY.

This is free software, and you are welcome to redistribute it

under certain conditions. See the file COPYING for details.

Home: C:/Documents and Settings/Administrator/Application Data/gnupg

支持的算法:

公钥:RSA, RSA-E, RSA-S, ELG-E, DSA

对称加密:3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH

散列:MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512

压缩:不压缩, ZIP, ZLIB, BZIP2

语法:gpg [选项] [文件名]

签字、检查、加密或解密

默认的操作依输入数据而定

指令:

-s, --sign [文件名]       生成一份签字

--clearsign [文件名]     生成一份明文签字

-b, --detach-sign         生成一份分离的签字

-e, --encrypt           加密数据

-c, --symmetric           仅使用对称加密

-d, --decrypt           解密数据(默认)

--verify             验证签字

--list-keys           列出密钥

--list-sigs           列出密钥和签字

--check-sigs         列出并检查密钥签字

--fingerprint         列出密钥和指纹

-K, --list-secret-keys     列出私钥

--gen-key           生成一副新的密钥对

--delete-keys         从公钥钥匙环里删除密钥

--delete-secret-keys     从私钥钥匙环里删除密钥

--sign-key           为某把密钥添加签字

--lsign-key           为某把密钥添加本地签字

--edit-key           编辑某把密钥或为其添加签字

--gen-revoke         生成一份吊销证书

--export             导出密钥

--send-keys           把密钥导出到某个公钥服务器上

--recv-keys           从公钥服务器上导入密钥

--search-keys         在公钥服务器上搜寻密钥

--refresh-keys         从公钥服务器更新所有的本地密钥

--import             导入/合并密钥

--card-status         打印卡状态

--card-edit           更改卡上的数据

--change-pin         更改卡的 PIN

--update-trustdb       更新信任度数据库

--print-md 算法 [文件]   使用指定的散列算法打印报文散列值

选项:

-a, --armor             输出经 ASCII 封装

-r, --recipient 某甲       为收件者“某甲”加密

-u, --local-user         使用这个用户标识来签字或解密

-z N                 设定压缩等级为 N (0 表示不压缩)

--textmode           使用标准的文本模式

-o, --output             指定输出文件

-v, --verbose           详细模式

-n, --dry-run           不做任何改变

-i, --interactive         覆盖前先询问

--openpgp           行为严格遵循 OpenPGP 定义

--pgp2             生成与 PGP 2.x 兼容的报文

(请参考在线说明以获得所有命令和选项的完整清单)

范例:

-se -r Bob [文件名]       为 Bob 这个收件人签字及加密

--clearsign [文件名]       做出明文签字

--detach-sign [文件名]     做出分离式签字

--list-keys [某甲]       显示密钥

--fingerprint [某甲]       显示指纹 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python的gnupg模块默认使用的是OpenPGP协议,它不支持使用AES算法进行加密解密。不过,我们可以使用Python的pycryptodome模块来实现AES算法的加解密。具体步骤如下: 1. 导入pycryptodome模块和gnupg模块: ```python from Crypto.Cipher import AES import gnupg ``` 2. 创建GPG对象和AES对象: ```python gpg = gnupg.GPG() aes = AES.new(key, AES.MODE_CBC, iv) ``` 其中,`key`为AES算法的密钥,长度必须为16、24或32字节,即128位、192位或256位,`iv`为初始化向量,长度必须为16字节。 3. 使用AES对象的encrypt函数进行加密: ```python ciphertext = aes.encrypt(plaintext) ``` 其中,`plaintext`为要加密的明文。 4. 使用GPG对象的encrypt函数进行加密: ```python encrypted_data = gpg.encrypt(ciphertext, recipients=[recipient], symmetric='AES256') ``` 其中,`recipient`为加密后的密文接收者的指纹,`symmetric`为使用的对称加密算法,这里选择了AES256。 5. 使用GPG对象的decrypt函数获取密文: ```python encrypted_data = gpg.decrypt(ciphertext, passphrase=passphrase) ``` 其中,`ciphertext`为加密后的密文,`passphrase`为加密时设置的密码。 6. 使用AES对象的decrypt函数进行解密: ```python plaintext = aes.decrypt(encrypted_data.data) ``` 完整代码示例: ```python from Crypto.Cipher import AES import gnupg gpg = gnupg.GPG() aes = AES.new(key, AES.MODE_CBC, iv) plaintext = 'Hello, World!' ciphertext = aes.encrypt(plaintext) recipient = 'recipient_fingerprint' encrypted_data = gpg.encrypt(ciphertext, recipients=[recipient], symmetric='AES256') passphrase = 'my_passphrase' decrypted_data = gpg.decrypt(encrypted_data.data, passphrase=passphrase) plaintext = aes.decrypt(decrypted_data.data) print(plaintext) ``` 其中,`key`为AES算法的密钥,长度必须为16、24或32字节,即128位、192位或256位,`iv`为初始化向量,长度必须为16字节,`recipient`为加密后的密文接收者的指纹,`passphrase`为加密时设置的密码。执行以上代码,就可以获取解密后的明文。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值