解密用python加密的typescript中的数据
我试图解密以前用python加密过的数据,但我不能 我在python中使用以下方法加密数据:解密用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 =
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,但它不起作用。我认为整个解密部分失败了,不仅仅是第四部分,但我不知道如何修复它