TypeError: crypto.createCipher no és funció a Node.js 22 Lambda: migració

El teu Lambda falla amb crypto.createCipher? Aprèn a migrar a createCipheriv amb scrypt a Node.js 22. Guia pas a pas.

domingo, 26 de julio de 2026 • 4 min de lectura • Equip Q2BSTUDIO

Solución para createCipheriv en Node.js 22 Lambda

A l'ecosistema d'AWS Lambda, l'actualització a Node.js 22 ha provocat un error inesperat en moltes funcions que utilitzaven el mètode crypto.createCipher. El missatge TypeError: crypto.createCipher is not a function apareix en intentar realitzar operacions criptogràfiques, indicant que aquesta funció ha estat eliminada completament. Aquest canvi no és capriciós, sinó que respon a una decisió de seguretat llargament anunciada: el mètode original derivava la clau de xifratge mitjançant EVP_BytesToKey amb MD5, sense sal i amb una sola iteració, fent-lo vulnerable a atacs de força bruta i diccionari. Node.js el va marcar com a obsolet des de la versió 10, va emetre avisos en execució a partir de la v11, i finalment el va eliminar a la v22. Per a les empreses que executen aplicacions a AWS Lambda, especialment aquelles que manegen dades sensibles, aquest canvi obliga a una migració urgent cap a l'ús de crypto.createCipheriv amb una derivació de clau robusta.

La migració no és trivial, perquè implica modificar tant el xifratge com el desxifratge, i a més gestionar les dades antigues que ja van ser protegides amb el mètode obsolet. Per a aquells que ja han actualitzat el seu runtime a Node.js 22, la primera reacció sol ser buscar una bandera màgica com --openssl-legacy-provider, però aquesta opció només restaura el proveïdor hash antic per a compilació, no les funcions eliminades. L'única solució duradora és reescriure el codi utilitzant crypto.createCipheriv i crypto.scryptSync (o pbkdf2Sync) per derivar la clau a partir d'una contrasenya, afegint una sal aleatòria de 16 bytes i un vector d'inicialització (IV) també aleatori. Aquest procés garanteix que cada xifratge sigui únic, fins i tot amb la mateixa contrasenya, i que la derivació sigui resistent a atacs amb hardware especialitzat com GPU o ASIC.

L'escenari més complex apareix quan ja existeixen dades xifrades amb l'API antiga. La funció createCipher utilitzava internament una sal de 8 bytes (prefixada amb 'Salted__') o cap si no s'especificava. Per desxifrar aquestes dades legacy, cal reproduir exactament el mateix procés de derivació amb EVP_BytesToKey, la qual cosa només és possible amb una versió anterior de Node.js (≤21). La recomanació professional és executar un script temporal en un entorn Node.js antic, desxifrar a text pla i tornar a xifrar amb el nou patró. Això es pot fer dins d'una Lambda amb un runtime anterior o en una màquina local, sempre sota estrictes mesures de ciberseguretat per no exposar les dades durant la transició.

A més de la migració tècnica, convé revisar totes les dependències del projecte. Una cerca amb grep -r 'createCipher' node_modules/ revelarà quines llibreries de tercers estan utilitzant el mètode obsolet. Moltes biblioteques de xifratge i autenticació van publicar versions actualitzades fa anys, però si alguna no ho ha fet, caldrà pedaçar-la o substituir-la. En entorns empresarials, on la continuïtat del negoci depèn de la integritat de les dades, aquest tipus d'auditoria és crítica. Q2BSTUDIO, com a empresa de desenvolupament de programari i tecnologia, ofereix serveis de desenvolupament d'aplicacions a mida que inclouen revisions de seguretat, actualització de runtimes i migració de sistemes heretats.

El calendari de depreciació d'AWS Lambda també afegeix pressió. El runtime Node.js 20.x va quedar obsolet el 30 d'abril de 2026, sense pedaços de seguretat des d'aquesta data. Les funcions que encara l'usen han de migrar a Node.js 22 abans de les dates bloc (create-block: 1 de febrer de 2027; update-block: 3 de març de 2027). Si una empresa no ha planificat aquesta migració, els equips de desenvolupament es trobaran amb l'error de createCipher just quan intentin actualitzar, generant retards i potencials vulnerabilitats. Integrar serveis cloud com AWS o Azure amb una estratègia sòlida de cloud AWS/Azure permet automatitzar aquestes transicions i mantenir la seguretat de les dades.

Des d'un punt de vista més ampli, aquest canvi reflecteix una tendència en la indústria cap a algoritmes criptogràfics moderns i resistents a atacs de força bruta. L'ús de scrypt com a funció de derivació de clau, per exemple, és memory-hard, cosa que dificulta el paral·lelisme massiu. Les solucions d'intel·ligència artificial i els agents intel·ligents també es beneficien d'aquestes pràctiques, ja que el maneig segur de dades sensibles és un requisit transversal. A Q2BSTUDIO acompanyem les organitzacions en la integració d'IA i en l'adopció d'estàndards de ciberseguretat que protegeixin tant les dades xifrades com els pipelines de machine learning.

Per als equips que treballen amb Business Intelligence (BI) i Power BI, la seguretat de les dades font és igualment rellevant. Si una aplicació Lambda extreu, transforma i xifra dades abans de carregar-les en un data warehouse, la ruptura del xifratge pot interrompre fluxos complets de reporting. Per això, Q2BSTUDIO ofereix serveis de consultoria en BI / Power BI que inclouen la revisió de les capes de seguretat en els pipelines de dades.

En resum, la desaparició de crypto.createCipher a Node.js 22 no és un simple error de compatibilitat, sinó una oportunitat per millorar la seguretat de les aplicacions. La migració requereix un pla acurat que inclogui la reescriptura del codi, la re-encriptació de dades legacy i l'auditoria de dependències. Les empreses que actuïn amb antelació, recolzant-se en socis tecnològics com Q2BSTUDIO, podran realitzar aquesta transició sense contratemps i a més enfortir la seva postura de seguretat global. No esperis que l'error aparegui en producció: revisa els teus runtimes, actualitza el teu codi i assegura les teves dades amb les millors pràctiques del mercat.

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.