作为概念证明的一部分,我收到了来自第三方的 bas64 编码/三重 DES (MODE_ECB) 加密字符串。我写了一个快速测试,知道解密的值应该是“testdata”,但它似乎不起作用。
我用 pycrypto 和 pyDES 都试过了,结果是一样的。难道我做错了什么。decode('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")