解密使用python加密的打字稿中的数据

时间:2019-06-01 19:16:10

标签: python typescript encryption

我正在尝试解密以前用python加密过的数据,但不能。

我在python中使用以下代码对数据进行加密:

iv = Random.new().read( AES.block_size )
cipher = AES.new(secret_key,AES.MODE_CBC, iv) 
encrypdata = base64.b64encode(iv + cipher.encrypt(data))

我在python中使用以下代码对其进行解密:

enc = base64.b64decode(encrypdata)
iv = enc[:16]
cipher = AES.new(secret_key, AES.MODE_CBC, iv )
decryptdata = cipher.decrypt( enc[16:] ).strip()

但是当我用打字稿尝试时,它失败了:

enc = Buffer.from(encrypdata, 'base64').toString();
iv = enc.toString().slice(0,16);
cipher = crypto.createDecipheriv("aes-256-cbc",secret_key,  iv );
decryptdata = cipher.update( enc.slice(16) ).strip();

我当前收到的错误是“无效的IV长度”,但是iv的长度是16。

有人可以告诉我如何做到这一点吗? 谢谢。

1 个答案:

答案 0 :(得分:0)

通过以下配置,我能够解密数据:

     enc = Buffer.from(datos, 'base64');
     iv = enc.slice(0, 16);
     crypt = enc.toString('base64', 16);
     decipher = crypto.createDecipheriv('aes-128-cbc', secret_key, iv);
     decipher.setAutoPadding(false);
     dec = decipher.update(crypt,'base64','utf-8');
     dec += decipher.final('utf-8');