【发布时间】:2011-08-23 18:38:23
【问题描述】:
我在正在开发的服务器和客户端应用程序之间加密和解密数据时遇到了一些麻烦。我正在使用可以下载的脚本here at birth-online.de 使用 AES 实现。
当我尝试在我的 Ubuntu 10.04 服务器上编码或解码数据时,该实现运行良好。但是,当尝试在 Windows 下使用脚本时,我收到以下异常:
>>> aes.encrypt("Test", "Test", 256)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "aes.py", line 148, in encrypt
key = Cipher(pwBytes, KeyExpansion(pwBytes))
File "aes.py", line 112, in KeyExpansion
w = [0] * Nb*(Nr+1)
TypeError: can't multiply sequence by non-int of type 'float'
有谁知道到底出了什么问题以及如何解决?我已经搜索过 Google,但似乎找不到任何关于此异常的有用信息。我在我的 Windows (x64) 测试机上使用 Python 3.2.1,而我的 Ubuntu 服务器正在运行 Python 2.6.5。 (顺便说一下,版本在这里会有所不同吗?)
提前致谢! 罗伯特
【问题讨论】:
-
Python 2.x 和 3.x 有很大的不同。我不知道这是否是造成这种特殊差异的原因,但我会说这是主要嫌疑人。
-
这似乎在 Windows 上的 Python 2.7 中有效。我应该先测试一下。我没那么聪明。但是,仍然应该可以在 Python 3.x 上运行它,因为 2.7 会越来越老,没有新版本可以发布。 2.7 是针对 2.x 发布的最新版本。
-
大多数软件包都必须针对 python 3 进行更新。这是减缓采用 python 3 的大问题。您可以在pypi.python.org/pypi?:action=browse&c=533&show=all 看到哪些软件包支持 python 3。
标签: python exception encryption python-3.x aes