Node.JS错误:0606506D:数字信封程序:EVP_DecryptFinal_ex:最终块长度错误

时间:2019-08-05 03:44:14

标签: node.js encryption cryptography

解密时遇到问题!请帮助新手!

我尝试了Nodejs decrypt using crypto error wrong final block lengthDecrypting AES256 with node.js returns wrong final block length,但对我没有帮助

使用此加密数据

function encrypt(text,encrypt_key){
  var cipher = crypto.createCipher('aes-256-cbc',encrypt_key)
  var encrypted;
  encrypted += cipher.update(text,'utf8','base64');
  encrypted += cipher.final('base64');
  console.log(typeof encrypted)
  return encrypted;
}

并使用来自Node.js的网络模块发送

    var key_info = prepareJSONstring('session_key', encrypt(secret_key,encrypt_public_key),0,0);
    console.log('Session Key sent:  \n', key_info)
    conn.write(key_info);

使用以下方式从客户端接收数据

jsonData = JSON.parse(data);
secret_key = jsonData.data;
secret_key = decrypt(secret_key,encrypt_key);
console.log('Received session_key: \n'+ secret_key)

然后使用以下方法解密:

function decrypt(content, decrypt_key){
  var decipher = crypto.createDecipher('aes-256-cbc',decrypt_key)
  var decrypted;
  decrypted += decipher.update(content, 'base64', 'utf8');
  decrypted += decipher.final('utf8');
}

这是确切的错误消息。我检查解密功能中输入的类型是否为字符串。如何检查块长?我不知道还要检查什么

internal/crypto/cipher.js:164
  const ret = this._handle.final();
                           ^

Error: error:0606506D:digital envelope routines:EVP_DecryptFinal_ex:wrong final block length

0 个答案:

没有答案
相关问题