问题,我明明已经安装了呀

环境: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"))

浙公网安备33011302000604

辽ICP备20003309号