node.js - nodejs - node js md5 decrypt
Se ha producido un error al utilizar Crypto en Node.js (1)
Estoy usando la biblioteca Crypto de Node.js para el cifrado / descifrado de la siguiente manera:
encrypt = function(text, passPhrase){
var cipher = crypto.createCipher(''AES-128-CBC-HMAC-SHA1'', passPhrase);
var crypted = cipher.update(text,''utf8'',''hex'');
crypted += cipher.final(''hex'');
return crypted;
} ,
decrypt = function(text, passPhrase){
var decipher = crypto.createDecipher(''AES-128-CBC-HMAC-SHA1'', passPhrase)
var dec = decipher.update(text,''hex'',''utf8'')
dec += decipher.final(''utf8'');
return dec;
}
No hay problema con la parte de cifrado. y si envío el passPhrase correcto para el descifrado tampoco hay problema. Mi problema es que si envío passfrash ''incorrecto'' para el descifrado, el código se rompe y arrojo un error:
TypeError: Bad input string
at Decipher.Cipher.update (crypto.js:279:27)
at module.exports.decrypt (/xxxx/yyyyy/jjj/ssss/encryptionService.js:19:28)
at Object.module.exports.passwordDecryptor (/xxxx/yyyyy/jjj/ssss/encryptionService.js:59:56)
at Object.<anonymous> (/xxxx/yyyyy/jjj/ssss/test.js:32:33)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
No quiero que suceda. Quiero, por ejemplo, la función de descifrado devuelve la oración ''Passpharse is wrong''. De acuerdo con la documentación, ingrese la descripción del enlace aquí. La función createDecipher no acepta una función de devolución de llamada. ¿Alguien tiene alguna solución?
Resolví el problema con try y catch . (La función de devolución de llamada no funciona).
decrypt = function(text, passPhrase){
var decipher = crypto.createDecipher(''AES-128-CBC-HMAC-SHA1'', passPhrase);
try {
var dec = decipher.update(text,''hex'',''utf8'');
dec += decipher.final(''utf8'');
return dec;
} catch (ex) {
console.log(''failed'');
return;
}
}