怎么用cryptography库编写RSA算法
时间: 2023-06-24 22:04:12 浏览: 88
cryptography.Net:一个易于使用的用C#编写的AES和RSA密码库,该库建立在Bouncy Castle API上。 使用此库,您可以快速轻松地将AES-256和RSA加密合并到您的项目中。 这些项目的C#和Java版本在API级别上是相同的
下面是使用Python的cryptography库编写RSA算法的示例代码:
```python
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import serialization, hashes
# 生成RSA密钥对
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048
)
public_key = private_key.public_key()
# 加密
message = b'Hello, world!'
ciphertext = public_key.encrypt(
message,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
print('Ciphertext:', ciphertext.hex())
# 解密
plaintext = private_key.decrypt(
ciphertext,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
print('Plaintext:', plaintext.decode())
```
这段代码使用了cryptography库中的`rsa`模块来生成RSA密钥对,并使用`public_key.encrypt()`和`private_key.decrypt()`方法进行加解密。加密和解密时都需要传入填充模式,这里使用了OAEP填充模式,其中MGF1和SHA256是哈希算法,用于生成填充数据。
阅读全文