python加密AES密码解码类型

python加密AES密码解码类型,python,python-3.x,pycrypto,Python,Python 3.x,Pycrypto,我在使用AES_CBC密码解码函数时遇到了一个小问题。当我假设(通过文件open(x,'wb'))返回字节时,python会抱怨在write()函数中获取字符串。当我假设(open(x,'w'))返回字符串时,python会抱怨write()函数中有字节。有人能在这里解释一下这个问题吗?(Python 3.5.1供Win7参考) 导致 TypeError: a bytes-like object is required, not 'str' TypeError: write() argumen

我在使用AES_CBC密码解码函数时遇到了一个小问题。当我假设(通过文件open(x,'wb'))返回字节时,python会抱怨在write()函数中获取字符串。当我假设(open(x,'w'))返回字符串时,python会抱怨write()函数中有字节。有人能在这里解释一下这个问题吗?(Python 3.5.1供Win7参考)

导致

TypeError: a bytes-like object is required, not 'str'
TypeError: write() argument must be str, not bytes
将文件打开语句更改为

with open(in_filename, 'rb') as in_file, open(out_filename, 'w') as out_file:
decrypt(in_file, out_file, key, iv)
导致

TypeError: a bytes-like object is required, not 'str'
TypeError: write() argument must be str, not bytes
我所能做的就是用str(chunk)将chunk转换成string, 但是我的输出文件是一堆字节字符串,比如

b", 'Shutdown', 'R"b"eboot', 'SetPowe"b"rSave'} (string "

有什么想法吗?我做错了什么?仅供参考该文件在Fedora PC上使用CryptoPP加密。当我在CryptoPP中解码时,一切正常,但这是我第一次使用pycrypto。

你有没有尝试过
out\u file.write(chunk.decode(“utf-8”)
在打开输出文件时只使用“w”?我现在不在我的工作PC上,但我很确定我确实尝试过,并且错误地说没有解码方法。我想我还记得IntelliSense刚刚展示了.encode()方法(在VS2015中使用PTV)。仅供参考,问题似乎是3.5特定的。我使用
conda create-n python2 python=2.7 anaconda
创建了一个新环境,将VS2015设置为使用该环境,然后代码只使用一个“wb”文件和
out\u文件。write(chunk)
。我将在pycrypto的github上重新发布我的原始问题(加上我在2.7中的成功尝试),因为我似乎做得不错,这可能是一个3.5相关的问题。你有没有尝试过
out\u file.write(chunk.decode(“utf-8”)
在用“w”打开输出文件时?我现在不在工作PC上,但我很确定我确实试过了,但我得到了一个错误,说没有解码方法。我想我还记得IntelliSense刚刚展示了.encode()方法(在VS2015中使用PTV)。仅供参考,问题似乎是3.5特定的。我使用
conda create-n python2 python=2.7 anaconda
创建了一个新环境,将VS2015设置为使用该环境,然后代码只使用一个“wb”文件和
out\u文件。write(chunk)
。我将在pycrypto的github上重新发布我最初的问题(加上我在2.7中的成功尝试),因为看起来我可能做得对,可能是3.5相关的问题。