解密用python加密的typescript中的数据

2024-04-25 01:33:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试解密以前用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()

但当我用typescript尝试时,它失败了:

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。你知道吗

有人能告诉我怎么做吗? 谢谢。你知道吗


Tags: 数据keynewsecretmodeaesstripcipher
1条回答
网友
1楼 · 发布于 2024-04-25 01:33:03

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

     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'); 

相关问题 更多 >