解密未返回正确的明文通常涉及以下几个方面的问题:
以下是一个使用AES对称加密和解密的示例代码(Python):
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
from Crypto.Random import get_random_bytes
# 生成密钥
key = get_random_bytes(16)
# 加密
def encrypt(plaintext):
cipher = AES.new(key, AES.MODE_CBC)
ct_bytes = cipher.encrypt(pad(plaintext.encode('utf-8'), AES.block_size))
iv = cipher.iv
return iv + ct_bytes
# 解密
def decrypt(ciphertext):
iv = ciphertext[:16]
ct = ciphertext[16:]
cipher = AES.new(key, AES.MODE_CBC, iv)
pt = unpad(cipher.decrypt(ct), AES.block_size)
return pt.decode('utf-8')
# 示例
plaintext = "Hello, World!"
ciphertext = encrypt(plaintext)
print(f"Ciphertext: {ciphertext}")
decrypted_text = decrypt(ciphertext)
print(f"Decrypted text: {decrypted_text}")
通过以上分析和示例代码,您应该能够找到解密未返回正确明文的原因,并采取相应的解决措施。
领取专属 10元无门槛券
手把手带您无忧上云