python代码crypto库实现Ecc加密算法
时间: 2024-09-28 14:04:28 浏览: 20
Python 中的 `cryptography` 库提供了一套强大的加密工具,包括 Elliptic Curve Cryptography (ECC) 算法的支持。如果你想要在 Python 中使用 ECC 加密,可以按照以下步骤:
首先,你需要安装 cryptography 库,如果你还没有安装,可以使用 pip 安装:
```bash
pip install cryptography
```
然后,你可以通过以下代码示例来创建并使用 ECC 密钥对,并进行加密和解密:
```python
from cryptography.hazmat.primitives.asymmetric import ec
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.primitives import serialization
# 生成椭圆曲线私钥和公钥
private_key = ec.generate_private_key(ec.SECP256R1())
public_key = private_key.public_key()
# 将公钥转换为PEM格式(方便分享)
public_key_pem = public_key.public_bytes(
encoding=serialization.Encoding.PEM,
format=serialization.PublicFormat.SubjectPublicKeyInfo
)
# 使用私钥加密数据
cipher_text = b"Your data to encrypt"
plaintext = cipher_text
cipher = Cipher(algorithms.ECDH(private_key), modes.ECB(), backend=default_backend())
encryptor = cipher.encryptor()
encrypted_data = encryptor.update(plaintext) + encryptor.finalize()
# 使用公钥解密数据
decryptor = Cipher(algorithms.ECDH(public_key), modes.ECB(), backend=default_backend()).decryptor()
decrypted_data = decryptor.update(encrypted_data) + decryptor.finalize()
# 检查解密后的数据是否与原始数据一致
if plaintext == decrypted_data:
print("Decryption successful.")
else:
print("Decryption failed.")