微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

需要在Python2.7中使用key和iv解密数据

如何解决需要在Python2.7中使用key和iv解密数据

具有密钥,iv和需要解密的加密数据。

获取错误但无意义的数据的输出

import os
from Crypto.Cipher import AES

data= '48fcbd0c1e1643bd618c010e57142a1e45c7fd5e36374eb1738f5b9ab6b4ce67bfea3e226426d43a2aaf9140eced8547d7a6199bde167a9e20de0a87f5c9a9a34361dce8d1d8c35a00018895c200bedebf24c30c920c134e5f956d1dfd1201abc3410c093adae070d7771bb5f99145351620573e6fff748ee3b260c9c2a483b886f331497c4023eb370ad1f881a4d165bf5cc8eb9e4008529e6ad2b759767c4cd65f764ffd6412fb58ce5914e2a5280024ac353b5d3b69707afe0c2ad138ffa85b712de22fb84ff2276fe360d6f87abc7879c3e592ec36055da14952eb0c1c973d8f55bd4b662593875b29b83be90b2b4f944b1ed036d4d2e3912ab11c42f77444c93e94d953023a27e8dbd24d7df17c27de5f0bf1ad334d833a8fa78d7ffc85179dc1ade4c32ced6bd902e8ddedad7305db5d2d1e33e5d96cb4422b4dc8f9ab6bb1e88685c44f6bfcc97d1d6b59ab96578c443103f5d4ae72b4cf09a87935e217ae9457a37433b97f6ba7700e1c5960cfefd255f0c740259f8e3c0ac8e9bee82b36742f5922d14964015dce9b2a8a014494821a98224811f2649e92d0372603fd569103be7763065bb9bc2a6a08a9f8da0ce1b567028ae41b83a8e2d19f6f98e22290aaca549c25318cd57f85b0dd9fde9c93f9f790b93a3f4f1787c34382b2b3b9190702723a1fd451c0e285b9258bd6e89b6bf3682760b1273c1a5c7781bac7db9c024e981099181b03c8f85ce0accfa4e1448539b1b62733192a8e2cf98741cfc60e13753c4ca55b26a40fdf0616445a9a46428adc0852c5c84d0a3878ee32f3d1b88cf7cf19a58bb69fb3f4cc43baa67012cc1947da6c0253c9cc291cfcc721faf0e3c16e738c52b94308d7c51a6bc929b8b106dfe546066215a84d410644d5bc6a4b5feae10a377ec57ca3ddce6073aa6f7e968ef97ac1e52a449c1290aa06442e8c15e0aef8d75a6348a3be2869fd90a944867ea7779c01530f73170adf5509fbf3600825758f85372afedb56'
key = '24305c3a354951afe96d1800ad9299bf'
iv = 'heF9BATUfWuISyO8'
decryptor = AES.new(key,AES.MODE_CBC,iv)
decryptedData  = decryptor.decrypt(data)
print(decryptedData)

解决方法

密文是十六进制编码的,您必须在解密之前对其进行解码:

from Crypto.Cipher import AES
import binascii

data= '48fcbd0c1e1643bd618c010e57142a1e45c7fd5e36374eb1738f5b9ab6b4ce67bfea3e226426d43a2aaf9140eced8547d7a6199bde167a9e20de0a87f5c9a9a34361dce8d1d8c35a00018895c200bedebf24c30c920c134e5f956d1dfd1201abc3410c093adae070d7771bb5f99145351620573e6fff748ee3b260c9c2a483b886f331497c4023eb370ad1f881a4d165bf5cc8eb9e4008529e6ad2b759767c4cd65f764ffd6412fb58ce5914e2a5280024ac353b5d3b69707afe0c2ad138ffa85b712de22fb84ff2276fe360d6f87abc7879c3e592ec36055da14952eb0c1c973d8f55bd4b662593875b29b83be90b2b4f944b1ed036d4d2e3912ab11c42f77444c93e94d953023a27e8dbd24d7df17c27de5f0bf1ad334d833a8fa78d7ffc85179dc1ade4c32ced6bd902e8ddedad7305db5d2d1e33e5d96cb4422b4dc8f9ab6bb1e88685c44f6bfcc97d1d6b59ab96578c443103f5d4ae72b4cf09a87935e217ae9457a37433b97f6ba7700e1c5960cfefd255f0c740259f8e3c0ac8e9bee82b36742f5922d14964015dce9b2a8a014494821a98224811f2649e92d0372603fd569103be7763065bb9bc2a6a08a9f8da0ce1b567028ae41b83a8e2d19f6f98e22290aaca549c25318cd57f85b0dd9fde9c93f9f790b93a3f4f1787c34382b2b3b9190702723a1fd451c0e285b9258bd6e89b6bf3682760b1273c1a5c7781bac7db9c024e981099181b03c8f85ce0accfa4e1448539b1b62733192a8e2cf98741cfc60e13753c4ca55b26a40fdf0616445a9a46428adc0852c5c84d0a3878ee32f3d1b88cf7cf19a58bb69fb3f4cc43baa67012cc1947da6c0253c9cc291cfcc721faf0e3c16e738c52b94308d7c51a6bc929b8b106dfe546066215a84d410644d5bc6a4b5feae10a377ec57ca3ddce6073aa6f7e968ef97ac1e52a449c1290aa06442e8c15e0aef8d75a6348a3be2869fd90a944867ea7779c01530f73170adf5509fbf3600825758f85372afedb56'
key = '24305c3a354951afe96d1800ad9299bf'
iv = 'heF9BATUfWuISyO8'
decryptor = AES.new(key,AES.MODE_CBC,iv)
data = binascii.unhexlify(data)
decryptedData  = decryptor.decrypt(data)
print decryptedData

这给出了以下明文:

connection_type=wifi&app_name=MLB9Innings17&app_version=21&app_version_name=2.0.2&country_code=in&device_brand=Videocon&device_carrier=Jio+4G&device_cpu_type=armv8l&device_model=V502430&google_aid=b2753f4e-8aad-44dd-b7b6-823923eb5d67&google_ad_tracking_disabled=0&insdate=1495711043&installer=com.android.vending&install_referrer=utm_source%3D%28not+set%29%26utm_medium%3D%28not+set%29&language=en&mat_id=cc92c5ce-b617-4b6a-b1ce-596da5077425&mobile_country_code=405&mobile_network_code=872&os_version=6.0&screen_density=2.0&screen_layout_size=1280x720&sdk_version=3.11.4&conversion_user_agent=Dalvik%2F2.1.0+%28Linux%3B+U%3B+Android+6.0%3B+V502430+Build%2FMRA58K%29&currency_code=USD&revenue=0.0&system_date=1495711261  

请注意,显然没有标准paddings(例如PKCS7)用于加密。纯文本以两个0x20(空格)终止。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。