Skip to main content

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

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

hybrid_cipher-0.1.1.tar.gz (4.5 kB view details)

Uploaded Source

Built Distribution

hybrid_cipher-0.1.1-py3-none-any.whl (4.5 kB view details)

Uploaded Python 3

File details

Details for the file hybrid_cipher-0.1.1.tar.gz.

File metadata

  • Download URL: hybrid_cipher-0.1.1.tar.gz
  • Upload date:
  • Size: 4.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.0.0 CPython/3.9.18

File hashes

Hashes for hybrid_cipher-0.1.1.tar.gz
Algorithm Hash digest
SHA256 4533210ad2923f2348dc5fa5232da20f59b6a07acc9c61d5c1153aba0841a1cb
MD5 a70bfc4e93c6f99ce404f84ad6698f2f
BLAKE2b-256 fdc84fd3872e5ceb0272d85263f76c07d7e38f67eb50336f1333830efa05b02f

See more details on using hashes here.

File details

Details for the file hybrid_cipher-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for hybrid_cipher-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 22a2a45c5c85f6b0867f948694a59adb221f0c653a661ecb90d6b4910f584583
MD5 8163d6009629546ddf0df88a165e8e61
BLAKE2b-256 c450094b98f54e33b71a8acf2789e0f64f2d7fdca9f1cf455cfc5099357b1117

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page