在Python中加密输入参数可以通过多种方式实现,以下是几种常见的加密方法:
1. Base64编码
Base64编码是一种将二进制数据转换为ASCII字符的方法,常用于数据传输或存储。
```python
import base64
待加密数据
data = "hello world"
编码
encoded_data = base64.b64encode(data.encode('utf-8'))
print(encoded_data) 输出:b'aGVsbG8gd29ybGQ='
解码
decoded_data = base64.b64decode(encoded_data).decode('utf-8')
print(decoded_data) 输出:hello world
2. MD5加密
MD5是一种不可逆的散列算法,用于生成数据的固定长度的摘要。
```python
import hashlib
待加密数据
data = "中国你好"
创建MD5对象
md5_hash = hashlib.md5()
对数据进行加密
md5_hash.update(data.encode('utf-8'))
获取加密后的摘要
encrypted_data = md5_hash.hexdigest()
print(encrypted_data) 输出:MD5加密后的摘要
3. 自定义加密规则
可以自定义加密规则对输入参数进行加密。
```python
def custom_encrypt(text):
map_dict = {'1': '1', 'abc': '2', 'def': '3', 'ghi': '4', 'jkl': '5', 'mno': '6', 'pqrs': '7', 'tuv': '8', 'wxyz': '9', '0': '0'}
encrypted_text = ""
for char in text:
if 'A' <= char <= 'Z':
encrypted_text += chr((ord(char) - ord('A') + 3) % 26 + ord('A'))
elif 'a' <= char <= 'z':
encrypted_text += map_dict.get(char, char)
else:
encrypted_text += char
return encrypted_text
待加密数据
data = "Hello World"
加密
encrypted_data = custom_encrypt(data)
print(encrypted_data) 输出:加密后的文本
4. 对称加密
对称加密使用相同的密钥进行加密和解密,例如AES。
```python
from cryptography.fernet import Fernet
生成密钥
key = Fernet.generate_key()
创建Fernet对象
cipher_suite = Fernet(key)
待加密数据
data = "hello world"
加密
encrypted_data = cipher_suite.encrypt(data.encode('utf-8'))
print(encrypted_data) 输出:加密后的数据
解密
decrypted_data = cipher_suite.decrypt(encrypted_data).decode('utf-8')
print(decrypted_data) 输出:解密后的数据
5. 非对称加密
非对称加密使用一对密钥,包括公钥和私钥,例如RSA。
```python
from cryptography.hazmat.primitives.asymmetric import rsa
from cryptography.hazmat.primitives import serialization
生成密钥对
private_key = rsa.generate_private_key(
public_exponent=65537,
key_size=2048,
)
public_key = private_key.public_key()
待加密数据
data = "hello world"
使用公钥加密
encrypted_data = public_key.encrypt(
data.encode('utf-8'),
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
print(encrypted_data) 输出:加密后的数据
使用私钥解密
decrypted_data = private_key.decrypt(
encrypted_data,
padding.OAEP(
mgf=padding.MGF1(algorithm=hashes.SHA256()),
algorithm=hashes.SHA256(),
label=None
)
)
print(decrypted_data.decode('utf-8')) 输出:解密后的数据
选择合适的