问题,我明明已经安装了呀
环境:win, python3.6.6
使用的pip install Crypto
方法一
这样的话可以去python安装目录的\Envs\test_env\Lib\site-packages
下查看 与crypto字样有关的,如果找到一个小写的文件夹,且创建时间和安装时差不多,那么可以尝试将crypto
=>Crypto
这时再引用看看咋样,如果还是报错, 那么恭喜你,喜提方法二
方法二
pip install pycryptodome
安装之后找到该文件夹,重命名为Crypto
,再导包应该就可以了
编码问题
使用aes
解密之后,
得到这样的字符串
b'{"status":-1,"message":"\\u53d1\\u9001\\u5931\\u8d25\\uff0c\\u8bf7\\u7a0d\\u540e\\u518d\\u8bd5"}\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'
代码
def decrypt():
key = "u9J7AzGY50Vnm14=".encode()
print("key:", key)
text = base64.b64decode("2BAsE4IfLrX7OPRjjxAhXVL5S+vRLBieM5n2QO7kjfdYojyYJvoF3MM/A3gw7L58TIZ7za0yw2DyevnFE57YaLTncy5UE5eC60yLP3epu/l7pTD/WPCiIppvk2lnuOMz")
iv = b"6di50aH901duea7d"
mode = AES.MODE_CBC
crypts = AES.new(key, mode, iv)
decrypt_data = crypts.decrypt(text)
print(decrypt_data)
这是解码错误导致的,应该使用unicode_escape
解码
# 正确解码
def decrypt():
key = "u9J7AzGY50Vnm14=".encode()
print("key:", key)
text = base64.b64decode("2BAsE4IfLrX7OPRjjxAhXVL5S+vRLBieM5n2QO7kjfdYojyYJvoF3MM/A3gw7L58TIZ7za0yw2DyevnFE57YaLTncy5UE5eC60yLP3epu/l7pTD/WPCiIppvk2lnuOMz")
iv = b"6di50aH901duea7d"
mode = AES.MODE_CBC
crypts = AES.new(key, mode, iv)
decrypt_data = crypts.decrypt(text)
# print(decrypt_data)
print(decrypt_data.decode("unicode_escape"))