解密通过其他来源加密的3DES数据

时间:2013-06-03 04:10:02

标签: python cryptography pycrypto 3des

作为概念证明的一部分,我从第三方获得了bas64编码/ Triple DES(MODE_ECB)加密字符串。我写了一个快速测试,知道解密的值应该是“testdata”,但它似乎不起作用。

我已经尝试了pycrypto和pyDES,结果相同。难道我做错了什么。解码('hex')是密钥的正确方法吗?

from Crypto.Cipher import DES3
import base64

class akamaiServicesTest(TestCase):

def test_cipherDecode3DES(self):
    key = "D41D8CD98F00B204E9800998ECF8427ECF34260089DE00EF".decode('hex')
    encryptedString = base64.b64decode("QnRWdXFPeE8rRmJGOGVSWkhOMzFiN3l2Y01scU1QdXU=")
    self.assertEqual(encryptedString, "BtVuqOxO+FbF8eRZHN31b7yvcMlqMPuu")

    cipher = DES3.new(key, DES3.MODE_ECB)
    decryptedString = cipher.decrypt(encryptedString)
    self.assertEqual(decryptedString, "testdata")

1 个答案:

答案 0 :(得分:2)

密钥是正确的,但密文似乎是Base64编码的两次。解码“BtVuq ...”字符串以获得正确的密文。

使用PKCS#7填充在ECB模式下使用3DES解密密文产生8字节的二进制数据和8字节的ASCII字符串“testdata”。这是你在找什么?

相关问题