我尝试在python 3中实现AES算法。我只是尝试将代码从python 2.3转换为python 3.如何解决错误?我的代码行是:
key = map(ord, key)
提前致谢
您的关键变量已经是一个bytes
对象(在 Py2 中str
)。在 Py2 中,str
是一个长度为 1 str
的序列,所以你需要ord
转换为 int
序列。
在 Py3 中,bytes
对象是从 0 到 255(包括 0 到 255)的 int
s 序列。基本上,在Python 2中,你需要map(ord, key)
从str
转换为int
的序列(list
),在Python 3中,除非你需要改变序列,否则你根本不需要执行转换,即使这样,你也可以简单地做bytearray(key)
来制作原始bytes
的可变副本。
请注意,Py2.6+ 具有 bytearray
类型,它的行为与 Py3 中的行为相同(int
s 的可变序列),因此您可以通过在任何地方使用 bytearray(key)
来编写 2/3 的可移植代码(并且启动速度将比 map(ord, key)
快)。