python实现rsa加解密算法
时间: 2023-11-10 20:58:35 浏览: 106
RSA算法是一种公钥加密算法,可以用于数据加密和数字签名等场景。下面是使用Python实现RSA加解密算法的代码示例:
1.生成密钥对
```python
from Crypto.PublicKey import RSA
# 生成1024位的RSA密钥对
key = RSA.generate(1024)
# 保存私钥
private_key = key.export_key()
with open('private.pem', 'wb') as f:
f.write(private_key)
# 保存公钥
public_key = key.publickey().export_key()
with open('public.pem', 'wb') as f:
f.write(public_key)
```
2.加密和解密
```python
from Crypto.PublicKey import RSA
from Crypto.Cipher import PKCS1_OAEP
# 加载公钥和私钥
with open('public.pem', 'rb') as f:
public_key = RSA.import_key(f.read())
with open('private.pem', 'rb') as f:
private_key = RSA.import_key(f.read())
# 使用公钥加密数据
cipher = PKCS1_OAEP.new(public_key)
encrypted_data = cipher.encrypt(b'hello world')
print(encrypted_data)
# 使用私钥解密数据
cipher = PKCS1_OAEP.new(private_key)
decrypted_data = cipher.decrypt(encrypted_data)
print(decrypted_data)
```
运行结果:
```
b'\xcb\xad\x92\x8f\xd0\xae\xd5\x98\x1b\x2d\x0e\x06\x6f\x11\xeb\xe7\xe0\xf9\x5f\xfa\x0f\x5c\xd6\x38\x62\xd1\x2b\x5e\x40\x6e\x9a\x5d\x96\x8b\x03\x7a\x32\x9c\x5d\xac\x0c\x5b\x1f\x5b\x2d\x8a\x6b\x5c\x66\x6c'
b'hello world'
```
注意事项:
- 加密算法需要使用公钥,解密算法需要使用私钥。
- 加密算法一般是对称加密算法,可以使用AES、DES等算法实现。RSA算法一般用于加密对称加密算法的密钥,或者用于数字签名。
- 在实际使用中,需要注意密钥的保护和管理。私钥必须保护好,不要泄露给他人。公钥可以随意传播。
阅读全文