Javascript Node JS Crypto:解密时密码错误

Javascript Node JS Crypto:解密时密码错误,javascript,node.js,encryption,error-handling,Javascript,Node.js,Encryption,Error Handling,我正在使用以下函数加密/解密字符串: function encrypt(text, pswrd){ var cipher = crypto.createCipher(algorithm,pswrd), crypted = cipher.update(text,'utf8','hex'); crypted += cipher.final('hex'); return crypted; } function decrypt(text, pswrd){ var d

我正在使用以下函数加密/解密字符串:

function encrypt(text, pswrd){
  var cipher = crypto.createCipher(algorithm,pswrd),
      crypted = cipher.update(text,'utf8','hex');
      crypted += cipher.final('hex');
  return crypted;
}

function decrypt(text, pswrd){
  var decipher = crypto.createDecipher(algorithm,pswrd),
      dec = decipher.update(text,'hex','utf8');
      dec += decipher.final('utf8');
  return dec;
}
正在使用询问密码,因此用户输入密码进行加密,然后应使用相同的密码进行解密

当密码匹配时,一切正常,但问题是密码错误时。我找不到回调/方法来处理控制台输出的错误,然后由于密码错误解密失败。终端显示:

? Use same password: *
p�pP��X�B
��=�a�_��b��EyX��7�����X�y�����+�Rr�<��΅W��B�������am4r���+��v�
readline.js:924
            throw err;
            ^

SyntaxError: Unexpected token 
    at Object.parse (native)
?使用相同的密码:*
P�聚丙烯��X�B

��=�A.�_��B��埃克斯��7.�����X�Y�����+�Rr� 我们有同样的询问,我希望这有帮助,我所做的是解决问题

密码解密没有用于检查密码的回调,但我简化了它,每次收到数据(也用密码加密)时,我都创建一个令牌验证器(也用密码加密)。
如果从我的令牌验证器(hmac或web令牌)验证令牌(从正确的密码解密),则令牌和“数据”以相同的密码加密。那么“数据”现在可以从我的服务器有效地处理了

我们有相同的查询,我希望这有帮助,我所做的是解决问题

密码解密没有用于检查密码的回调,但我简化了它,每次收到数据(也用密码加密)时,我都创建一个令牌验证器(也用密码加密)。
如果从我的令牌验证器(hmac或web令牌)验证令牌(从正确的密码解密),则令牌和“数据”以相同的密码加密。那么“数据”现在可以从我的服务器上有效处理了

您是否尝试过
尝试{…}catch(e){…}
?您的可能副本通常不会使用那样的密码进行自动完整性检查。您使用的是哪种算法?@Phil_1984_u它是
算法='aes-256-ctr'
您应该查看经过身份验证的加密或使用处理身份验证的现有加密库,以便正确捕获不正确的密码错误。您是否尝试过
try{…}catch(e){…}
?可能的副本通常不会使用这样的密码进行自动完整性检查。您使用的是哪种算法?@Phil_1984_u这是
算法='aes-256-ctr'
您应该查看经过身份验证的加密或使用处理身份验证的现有加密库,以便正确捕获不正确的密码错误。