用python实现字符串的加密和解密算法,要求字符串包括大小写英文和阿拉伯数字及常用符号。
时间: 2024-05-05 14:18:58 浏览: 167
好的,关于您的问题,我们可以使用加密算法AES或者DES来实现字符串的加密和解密。下面是一个使用AES加密算法的Python代码示例:
```python
import base64
import hashlib
from Crypto import Random
from Crypto.Cipher import AES
# 对字符串进行加密
def encrypt(text, password):
# 使用密码和随机值生成键
key = hashlib.sha256(password.encode("utf-8")).digest()
iv = Random.new().read(AES.block_size)
cipher = AES.new(key, AES.MODE_CFB, iv)
# 加密字符串
ciphertext = cipher.encrypt(text.encode("utf-8"))
# 将加密后的字符串和IV值进行编码
encoded_ciphertext = base64.b64encode(ciphertext)
encoded_iv = base64.b64encode(iv)
return encoded_iv + encoded_ciphertext
# 对加密字符串进行解密
def decrypt(encoded_cipher, password):
# 解码加密字符串和IV值
encoded_iv = encoded_cipher[:24]
encoded_ciphertext = encoded_cipher[24:]
iv = base64.b64decode(encoded_iv)
ciphertext = base64.b64decode(encoded_ciphertext)
# 使用密码和解密向量生成键
key = hashlib.sha256(password.encode("utf-8")).digest()
cipher = AES.new(key, AES.MODE_CFB, iv)
# 解密字符串
plaintext = cipher.decrypt(ciphertext)
return plaintext.decode("utf-8")
# 调用示例
password = "my_password_12345"
message = "Hello, World! 私は日本人です。"
ciphertext = encrypt(message, password)
print("密文:", ciphertext)
plaintext = decrypt(ciphertext, password)
print("明文:", plaintext)
```
在这里,我们使用密码和随机值生成密钥,并将密钥用于AES算法进行加密和解密。加密后的数据需要编码为Base64格式,以便在不同系统之间进行传输。请注意,这里的加密和解密过程中使用的密码必须相同,否则无法正确解密数据。
以上是一个AES加密算法的Python代码示例,您可以参考这个做法来实现字符串的加密和解密。如果您需要其他加密算法的示例代码,也可以在评论区留言,我会尽可能回答您的问题。
阅读全文