用于Python的快速RC4密码流?

时间:2013-05-14 21:37:11

标签: python encryption rc4-cipher

我正在尝试编写一个需要大量加密强度伪随机字节的应用。

RC4密码对此非常理想;它的重量轻,易于理解。所以,我得到了规范并用Python编写了一个RC4算法。

它完全按预期工作,但是,它像糖蜜一样慢。在我的Core i7 2.2GHz上,我只能从算法中获得大约1MB /秒的速度。

显然,Python的解释性质并不是最适合此类任务的。我的问题是我不熟悉C编码 - 我用C做的最好的是一些Hello World的东西和一些文件读写的实验。不管怎样,我对C使用Python-C API肯定不够好。

我知道.NET / C#,我在Windows上使用C#编写了相同的算法,并且我能够轻松地超过60MB /秒。所以.NET的CLR更加优化。但是,Python应用程序的目标平台是Unix / Linux。

理想情况下,我不想通过大量的中间层来获得优化的RC4密码到Python应用程序中。

由于RC4依赖于状态,理想情况下我会用一个类来做这个(这就是我用我的Python实现的方式。)所以,这是我希望能够做的一小部分:

rc4 = RC4Encrypter()
rc4.seed(myKey) # seed the RC4 algorithm with bytes from string myKey
rc4.getRC4Bytes(1048576) # get the next 1MB of RC4 cryptostream bytes as a binary string
rc4.encryptWithRC4(myString) # encrypt myString's bytes with RC4 bytes using xor and return

有什么建议吗?我很想学习C,但对于这个简单的项目来说,这是一个很大的学习曲线。

1 个答案:

答案 0 :(得分:7)

我相信PyCrypto有一个RC4实现,请查看here