2015-11-06 56 views
0

我使用节点包简易加密(https://www.npmjs.com/package/easy-encryption)。这个包加密和解密字符串。如果解密创建了易加密的字符串,那就好了。但是,如果解密不正确的字符串,然后服务器滴返回此:类型错误处理

例不正确解密:

var crypt = new Crypt({ 
    secret: crypt_config.secret, 
    iterations: crypt_config.iterations 
}); 

var result = crypt.decrypt('test'); 

结果:

crypto.js:122 
    this.push(this._handle.update(chunk, encoding)); 
         ^

TypeError: Bad input string 
    at TypeError (native) 
    at Decipher.Cipher._transform (crypto.js:122:26) 
    at Decipher.Transform._read (_stream_transform.js:167:10) 
    at Decipher.Transform._write (_stream_transform.js:155:12) 
    ... 

如何使当错误发生服务器继续工作和误差如何处理?

+1

为什么你认为'测试'解密正确?这不是一个有效的密文,是吗? –

回答

1

如果您想继续执行,请将代码封装在try catch语句中。

var crypt = new Crypt({ 
    secret: crypt_config.secret, 
    iterations: crypt_config.iterations 
}); 

try{ 
    var result = crypt.decrypt('test'); 
} 
catch(err){ 
    alert(err); 
} 

但是,正如评论所说,你真的在​​传递正确的数据类型吗?这对你无能为力。

+0

谢谢!是的,'解密'带字符串。 – Vladimir37

+0

你明白了!谢谢。 – Xogle