Hello! 欢迎来到小浪资源网!

我通过错误消息“错误:数字信封例程::不支持”学到的知识


在开发全应用过程中,我遭遇了一个与node.JS的 openssl处理方式变更相关的错误。该错误源于应用依赖项使用了node.js捆绑的当前openssl版本不再支持的加密算法或功能。 网上搜索后,我了解到这是因为node.js对openssl的处理方式发生了变化,导致加密操作受影响。

我的初步尝试是删除node_modules文件夹并重新运行npm install,但这未能解决问题。

深入研究后,我意识到需要将已弃用的算法切换到旧模式以保证兼容性。这使我想起了大学里学习过的SHA-1哈希算法,由于安全问题,它已被弃用。

我通过错误消息“错误:数字信封例程::不支持”学到的知识

由于我的应用并非关键应用,且需要一定的向后兼容性,我决定暂时使用–openssl-legacy-provider标志作为权宜之计。这有助于我深入了解错误原因、解决方案以及相关术语。

–openssl-legacy-provider标志指示Node.js使用OpenSSL的旧版提供程序,从而恢复对旧版算法的支持。

我的解决步骤如下:

  1. 在终端执行:

    npm update npm audit fix --force
  2. 修改package.json文件中的scripts部分:

    之前:

    "scripts": {     "start": "react-scripts start",     "build": "react-scripts build",     "test": "react-scripts test",     "eject": "react-scripts eject" }

    之后:

    "scripts": {     "start": "react-scripts --openssl-legacy-provider start",     "build": "react-scripts --openssl-legacy-provider build",     "test": "react-scripts test",     "eject": "react-scripts eject" }

通过以上步骤,问题最终得到解决。 这个过程让我学习了npm的详细功能、版本管理、已弃用和遗留算法等知识。

相关阅读