Maison > interface Web > js tutoriel > Mes apprentissages via le message d'erreur « erreur : routines d'enveloppe numérique : non prises en charge »

Mes apprentissages via le message d'erreur « erreur : routines d'enveloppe numérique : non prises en charge »

Barbara Streisand
Libérer: 2024-12-25 09:24:09
original
823 Les gens l'ont consulté

Pendant que je travaillais sur mon application full-stack, je suis tombé sur cette erreur cryptographique et lorsque je l'ai recherchée sur StackOverflow et ChatGPT, j'ai appris qu'elle était due à des changements dans la gestion d'OpenSSL par Node.js, affectant opérations cryptographiques, c'est-à-dire que mon application tentait d'utiliser des algorithmes ou des fonctionnalités cryptographiques qui ne sont plus pris en charge dans la version actuelle d'OpenSSL fournie avec Node.js. Donc, l'erreur provenait en fait de la dépendance que j'avais téléchargée en s'appuyant sur une version obsolète de SSL.

Sur ce, pour corriger cette erreur :

  • Au départ, j'ai essayé de supprimer mon dossier node_modules (du frontend
    espace de travail/dossier) et réexécutez npm install afin de réinstaller
    les dépendances. Cependant, cela n'a pas résolu le problème.

  • Ensuite, j'ai maintenant compris que je devrais changer de version obsolète
    algorithme en mode hérité afin de résoudre les problèmes de compatibilité.
    Et, en surfant sur les algorithmes obsolètes, ça m'a convaincu
    m'a rappelé le SHA-1 dans PGP (Pretty Good Privacy) que j'ai appris dans le
    semestre précédent au collège, en réseaux informatiques. SHA-1 est un hachage
    algorithme qui est devenu un algorithme obsolète à cause du
    problèmes de sécurité.

My learnings through Error message “error:digital envelope routines::unsupported”

Et poursuivant sur le sujet, puisque mon application était une application non critique qui nécessitait également une certaine compatibilité descendante, j'ai décidé de continuer à utiliser l'indicateur --openssl-legacy-provider pour une solution de contournement temporaire, car cela m'aiderait apprenez-en plus sur les erreurs possibles qui pourraient survenir, en savoir plus sur les causes et comment les résoudre, ainsi que sur d'autres termes que je pourrais éventuellement rencontrer au cours du processus.

Le --openssl-legacy-provider permet l'utilisation d'algorithmes existants en demandant à Node.js d'utiliser l'ancien fournisseur d'OpenSSL, rétablissant ainsi la prise en charge de ces fonctions cryptographiques.

Donc, dans le terminal, j'ai commencé avec :

npm update
npm audit fix — force 

Copier après la connexion

Puis, sur le fichier package.json, j'ai apporté les modifications suivantes :

AVANT :

"scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
}
Copier après la connexion

APRÈS :

"scripts": {
    "start": "react-scripts --openssl-legacy-provider start",
    "build": "react-scripts --openssl-legacy-provider build",
    "test": "react-scripts test",
    "eject": "react-scripts eject"
}
Copier après la connexion

Maintenant, cela a finalement résolu le problème et j'ai adoré la façon dont j'ai progressé en apprenant différentes choses simplement en essayant de résoudre ce problème moi-même, en apprenant comment fonctionne npm en détail, comment les versions sont gérées, sur les algorithmes obsolètes et hérités, etc. .

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal