为Python提供的超级简单的非对称加密
项目描述
为Python提供的超级简单的非对称加密
简介
python-asymcrypt是pycryptodome的包装,使其非对称加密更加容易。
安装
使用pip
pip install asymcrypt
使用
生成密钥文件
import asymcrypt asymcrypt.generate_keys('my_private_key_file.pem','my_public_key_file.pem')
加密数据
data = 'A string, not an unicode' encrypted_data = asymcrypt.encrypt_data(data,'my_public_key_file.pem')
解密数据
data = asymcrypt.decrypt_data(encrypted_data,'my_private_key_file.pem')
Unicode,Str,Bytes
asymcrypt使用pycryptodome,对于数据,python3使用bytes,python2使用str。因此,建议使用这些类型。尽管如此,asymcrypt提供了类型检测,它将在加密时保持使用的类型,以便在解密时使用
对于python 2,如果您使用Unicode数据加密,它将在加密之前自动编码为utf-8 str,并在解密后解码回Unicode。如果您使用str数据,则不会进行编码/解码。
对于python 3,如果您使用str数据加密,它将在加密之前自动编码为utf-8 bytes,并在解密后解码回str。如果您使用bytes数据,则不会进行编码/解码。
密码短语
作为选项,您可以在每个函数中使用passphrase选项来生成加密密钥,并在使用encrypt/decrypt_data()函数时读取它们
Base64
默认情况下,输出/输入是二进制。但是,您可以在encrypt_data()中使用选项out_format='base64'将其编码为base64,或者在decrypt_data()中使用选项in_format='base64'将其从base64解码
命令行
Asymcrypt提供了3个命令
生成密钥对
asymgenkeys -priv private_key.pem -pub public_key.pem
加密
asymencrypt -k public_key.pem -in file_to_encrypt.txt -out dest_file.enc
解密
asymdecrypt -k private_key.pem -in encrypted_file.enc -out dest_file.txt
注意:您可以使用选项 -b 或 --base64 对数据进行 base64 编码/解码,使用 -p 或 --passphrase 指定密码来加密/解密密钥。
注意 2:如果在上述命令中未指定 -in 或 -out,则将使用标准输入/输出。
与 openssl 兼容性
asymcrypt 使用 RSA 密钥,根据 PKCS#1 OAEP 使用 RSA 加密协议,使用 AES 的 EAX AEAD 模式。如果提供了密码,密钥将使用 scrypt 和 AES128-CBC 进行加密。加密数据将跟踪原始 Python 数据类型。所有这些使得无法直接使用 openssl 解码由 asymcrypt 生成的文件。
新闻
0.0.10 (2019-05-24)
在 Pipfile 中使用 Python 3.6
0.0.9 (2019-02-06)
修复 asymdecrypt 脚本
0.0.6 (2018-10-02)
跟踪原始数据类型(unicode、str、bytes)
0.0.4 (2018-10-01)
添加控制台命令
密钥文件现在被缓存
0.0.2 (2018-09-28)
首次运行版本
项目详情
asymcrypt-0.0.10.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 979330491f2f79257d128d8e71ea9b7237124a5955316a19a8f176190c71396a |
|
MD5 | a25b3a1a0f477a7301de84a3bfd9962f |
|
BLAKE2b-256 | a075ee64d99d0815d1d6a78fc903d3feefce99e8e27f059ca11579c0dc635eb7 |
asymcrypt-0.0.10-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 99f82953937862c4084ec055582ffb102be3719f6e4d8d4bb0a8fe91d8eab5ae |
|
MD5 | f7cfcba7f1779c6388e5d9aadb180595 |
|
BLAKE2b-256 | da0ba44d64bc9bc6d85311c0368c2a12041911c4e71e00d30438af9b8a3ad3b9 |