AES 256位CBC PKCS#5在Python中加密/解密

时间:2017-04-28 14:35:04

标签: python cryptography aes

我正在开发一个应用程序,需要对使用此库http://crypto.hurlant.com/

的AS3(我知道......

我在这里或那里发现了很多关于使用Python进行AES加密的线程,但出于某些原因我无法在我的情况下使用它们。

我的加密数据是AES 256位CBC PKCS#5然后Base64编码并通过Web套接字传输到Python。

客户端应用生成的数据示例:

key:fce4aa4dcf0d2b27fe4ffdafa602c81d1930c410f48ada5c763d4c4052a939eb

IV:c75271d593ca86ca785e3bb25e8d02cb

清除数据:这个血腥的加密引擎无法正常工作!

加密数据:44FsQIcqM412 + YXZBwwoQSCz2uB9QPQMXJ410Xpw1f / M5RTRS7N6yfziAGq / Fd / E

我尝试使用此帖子Encrypt & Decrypt using PyCrypto AES 256上的代码,但是有很多不同设置的例子,我不知道选择哪一个,而且我真的是加密的菜鸟。 对此有何帮助?

1 个答案:

答案 0 :(得分:2)

以下代码可以满足您的需求。它基本上是您在外部设置IV的链接问题的highest voted answer

Python 2.x代码(如果你想要Python 3. x代码,你必须以不同的方式进行十六进制解码):

<?php //get images for product
              $product = Mage::getModel('catalog/product')->load($_product->getId());
              $helper = Mage::Helper('catalog/image');
              foreach ($product->getMediaGalleryImages() as $image) {
                  echo "<img src='" . $this->helper('catalog/image')->init($this->getProduct(), 'thumbnail', $image->getFile())->resize(80) . "' />";
              }
              ?>

输出

44FsQIcqM412+YXZBwwoQSCz2uB9QPQMXJ410Xpw1f/M5RTRS7N6yfziAGq/Fd/E
This bloody encryption engine won't work !

IV必须是不可预测的(读:随机)。不要使用静态IV,因为这会使密码具有确定性,因此在语义上不安全。观察密文的攻击者可以确定何时发送相同的消息前缀。 IV不是秘密,因此您可以将其与密文一起发送。通常,它只是在密文之前预先填写并在解密之前切掉。

相关问题