【发布时间】:2016-02-15 16:13:38
【问题描述】:
我正在使用以下函数加密/解密字符串:
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;
}
使用inquirer 询问密码,因此用户输入密码进行加密,然后应使用相同的密码进行解密。
密码匹配时一切正常,但问题是密码错误时。我找不到回调/方法来处理控制台输出的错误,然后由于密码错误而解密失败。终端显示:
? 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)
使用错误密码解密时,如何处理此错误?
【问题讨论】:
-
你试过
try {...} catch(e){...}吗? -
您通常不会使用这样的密码进行自动完整性检查。你用的是什么算法?
-
@Phil_1984_ 是
algorithm = 'aes-256-ctr' -
您应该查看经过身份验证的加密或使用处理身份验证的现有加密库,以便正确捕获不正确的密码错误。
标签: javascript node.js encryption error-handling