password nodejs node example encrypt decrypt crypto createcipheriv cipher node.js cryptography node-crypto

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; } }