python做信息加密
时间: 2023-10-04 13:07:29 浏览: 95
Python 有很多库可以用来进行信息加密,例如 hashlib、cryptography、pycryptodome 等等。
其中,hashlib 库可以用来进行哈希加密,如下所示:
```python
import hashlib
# SHA256加密
text = "Hello World"
hash_object = hashlib.sha256(text.encode())
hex_dig = hash_object.hexdigest()
print(hex_dig)
# MD5加密
text = "Hello World"
hash_object = hashlib.md5(text.encode())
hex_dig = hash_object.hexdigest()
print(hex_dig)
```
cryptography 库可以用来进行对称加密和非对称加密,下面是一个使用对称加密的例子:
```python
from cryptography.fernet import Fernet
# 生成密钥
key = Fernet.generate_key()
print(key)
# 加密数据
cipher_suite = Fernet(key)
cipher_text = cipher_suite.encrypt(b"Hello World")
print(cipher_text)
# 解密数据
plain_text = cipher_suite.decrypt(cipher_text)
print(plain_text)
```
pycryptodome 库也可以用来进行对称加密和非对称加密,下面是一个使用对称加密的例子:
```python
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
import base64
# 加密数据
key = b'0123456789abcdef' # 密钥需要16字节
cipher = AES.new(key, AES.MODE_CBC)
data = b'Hello World'
cipher_text = cipher.encrypt(pad(data, AES.block_size))
iv = base64.b64encode(cipher.iv).decode('utf-8')
ct = base64.b64encode(cipher_text).decode('utf-8')
print(iv)
print(ct)
# 解密数据
iv = base64.b64decode(iv)
ct = base64.b64decode(ct)
cipher = AES.new(key, AES.MODE_CBC, iv)
plain_text = unpad(cipher.decrypt(ct), AES.block_size)
print(plain_text)
```
需要注意的是,加密是一项非常重要的任务,需要谨慎处理。在实际应用中,需要根据具体情况选择合适的加密算法、密钥长度等参数,并且在传输过程中需要采取一些安全措施,如使用 HTTPS 协议等。
阅读全文