Skip to main content

hybrid-cipher

Hybrid Encryption Mode with Public-Key Encryption and Symmetric Encryption.

Install

pip install hybrid-cipher

加密原理

加密步骤

  1. 生成随机32位临时密钥。
  2. 使用RSA公钥加密临时密钥。
  3. 使用临时密钥及AES GCM加密算法加密数据内容。
  4. 把临时密钥的密文及数据密文相关字段拼接在一起,作为整体密文。

解密步骤

  1. 分割密文为:临时密钥密文、数据密文相关字段。
  2. 使用RSA私钥解密临时密钥密文,得到临时密钥明文。
  3. 使用临时密钥明文及AES GCM解密算法解密数据密文相关字段,得到数据明文。

Usage

In [1]: from Crypto.PublicKey import RSA
   ...: from hybrid_cipher import HybridCipher
   ...: 
   ...: sk = RSA.generate(1024)

In [2]: 

In [2]: cipher = HybridCipher(sk)

In [3]: cipher.encrypt({"a": "b"})
Out[3]: 'LS8T8hzgCfzo9QzlJ8pO7DD+pSolam9EZIhr35gTSGQayTj2NLqPgx7T8VGbgC2EnAf7fuFN0EXNlljQt1Vg9EyUC8sAMCRCw21zGN/SQttVQFQrETtZndNw/c5pODMVeVFELKnzbw0E50IC3f4mTd38il6O7fQz9SH7zr8Lle0=.tXn5E6vUHLbufPi7gIEFJg+iZDrxOq73q3ds3ZUHFOA=.51hM5vLf4x3nmwlbKRTgwA==.DK5W89RZ9MCl220YqZo5mA==./0O4k+4zIwIGrw=='

In [4]: cipher.decrypt('LS8T8hzgCfzo9QzlJ8pO7DD+pSolam9EZIhr35gTSGQayTj2NLqPgx7T8VGbgC2EnAf7fuFN0EXNlljQt1Vg9EyUC8sAMCRCw21zGN/SQttVQFQrETtZndNw/c5pODMVeVFELKnzbw0E50IC3f4mTd
   ...: 38il6O7fQz9SH7zr8Lle0=.tXn5E6vUHLbufPi7gIEFJg+iZDrxOq73q3ds3ZUHFOA=.51hM5vLf4x3nmwlbKRTgwA==.DK5W89RZ9MCl220YqZo5mA==./0O4k+4zIwIGrw==')
Out[4]: {'a': 'b'}

Release

v0.1.1

  • First release.

Release files for hybrid-cipher 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for hybrid-cipher 0.1.1
File Size Uploaded
hybrid_cipher-0.1.1.tar.gz 4.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for hybrid-cipher 0.1.1
File Interpreter ABI Platform
hybrid_cipher-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 9.0 kB

Release files / hybrid_cipher-0.1.1.tar.gz

Download URL hybrid_cipher-0.1.1.tar.gz
Size 4.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4533210ad2923f2348dc5fa5232da20f59b6a07acc9c61d5c1153aba0841a1cb
BLAKE2b-256 checksum
How to use checksums
fdc84fd3872e5ceb0272d85263f76c07d7e38f67eb50336f1333830efa05b02f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release files / hybrid_cipher-0.1.1-py3-none-any.whl

Download URL hybrid_cipher-0.1.1-py3-none-any.whl
Size 4.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
22a2a45c5c85f6b0867f948694a59adb221f0c653a661ecb90d6b4910f584583
BLAKE2b-256 checksum
How to use checksums
c450094b98f54e33b71a8acf2789e0f64f2d7fdca9f1cf455cfc5099357b1117
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.0.0 CPython/3.9.18

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page