Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typescript/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
解密用python加密的typescript中的数据_Python_Typescript_Encryption - Fatal编程技术网

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

解密用python加密的typescript中的数据,python,typescript,encryption,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)) enc = base64.b64decode(encrypdata) iv = enc[:16] cipher =

我试图解密以前用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))
enc = base64.b64decode(encrypdata)
iv = enc[:16]
cipher = AES.new(secret_key, AES.MODE_CBC, iv )
decryptdata = cipher.decrypt( enc[16:] ).strip()
我使用python中的以下内容对其进行解密:

iv = Random.new().read( AES.block_size )
cipher = AES.new(secret_key,AES.MODE_CBC, iv) 
encrypdata = base64.b64encode(iv + cipher.encrypt(data))
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

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

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

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

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

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

我对typescript一无所知,但那个
toString()
调用看起来很糟糕。。。加密数据是字节序列,而不是字符串。是的,为什么不干脆
iv=enc.slice(0,16)?我删除了toString,但它不起作用。我认为整个解密部分都失败了,不仅仅是iv部分,但我不知道如何修复它。我对typescript一无所知,但是
toString()
调用看起来很糟糕。。。加密数据是字节序列,而不是字符串。是的,为什么不干脆
iv=enc.slice(0,16)?我删除了toString,但它不起作用。我认为整个解密部分失败了,不仅仅是第四部分,但我不知道如何修复它