对称加密使用相同的密钥进行加密和解密。常见的对称加密算法包括AES(Advanced Encryption Standard)和DES(Data Encryption Standard)。
我们可以使用`cryptography`库来实现AES加密。首先需要安装这个库:
```bash
pip install cryptography
```
然后,你可以使用以下代码进行AES加密:
```python
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.backends import default_backend
import base64
def encrypt_data(data, key):
backend = default_backend()
cipher = Cipher(algorithms.AES(key), modes.ECB(), backend=backend)
encryptor = cipher.encryptor()
ciphertext = encryptor.update(data) + encryptor.finalize()
return base64.b64encode(ciphertext)
def decrypt_data(encrypted_data, key):
backend = default_backend()
cipher = Cipher(algorithms.AES(key), modes.ECB(), backend=backend)
decryptor = cipher.decryptor()
ciphertext = base64.b64decode(encrypted_data)
plaintext = decryptor.update(ciphertext) + decryptor.finalize()
return plaintext
key = b'This is a secret key'
data = b'This is some sensitive data'
encrypted_data = encrypt_data(data, key)
print("Encrypted:", encrypted_data)
decrypted_data = decrypt_data(encrypted_data, key)
print("Decrypted:", decrypted_data)
```
非对称加密使用一对密钥:公钥用于加密,私钥用于解密。常见的非对称加密算法包括RSA。
我们可以使用`cryptography`库来实现RSA加密。以下是一个示例:
```python
from cryptography.hazmat.primitives.asymmetric import rsa, padding
from cryptography.hazmat.primitives import serialization, hashes
import base64
def generate_rsa_keys():
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048,
backend=default_backend()
)
public_key = private_key.public_key()
return private_key, public_key
def encrypt_with_rsa(data, public_key):
ciphertext = public_key.encrypt(
data,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
return base64.b64encode(ciphertext)
def decrypt_with_rsa(encrypted_data, private_key):
ciphertext = base64.b64decode(encrypted_data)
plaintext = private_key.decrypt(
ciphertext,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
return plaintext
private_key, public_key = generate_rsa_keys()
data = b'This is some sensitive data'
encrypted_data = encrypt_with_rsa(data, public_key)
print("Encrypted:", encrypted_data)
decrypted_data = decrypt_with_rsa(encrypted_data, private_key)
print("Decrypted:", decrypted_data)
```
请注意,以上代码示例仅用于演示目的。在实际应用中,你需要确保密钥的安全性,并且根据具体需求选择合适的加密算法和模式。
本文由作者笔名:黑客网 于 2024-07-06 22:06:02发表在本站,原创文章,禁止转载,文章内容仅供娱乐参考,不能盲信。
本文链接: https://blog.xn--ubt767m.wang/wen/7226.html
下一篇
身份认证的最佳实践