首頁 > web前端 > js教程 > 我透過錯誤訊息「錯誤:數位信封例程::不支援」學到的知識

我透過錯誤訊息「錯誤:數位信封例程::不支援」學到的知識

Barbara Streisand
發布: 2024-12-25 09:24:09
原創
823 人瀏覽過

當我在開發全端應用程式時,我遇到了這個加密錯誤,當我在StackOverflow 和ChatGPT 上搜尋它時,我知道它是由於Node.js 對OpenSSL 的處理方式發生變化而出現的,影響了加密操作,即我的應用程式嘗試使用與Node.js 捆綁的當前OpenSSL 版本不再支援的加密演算法或功能。所以,錯誤實際上來自於我下載的依賴項,依賴過時版本的 SSL。

因此,要修正此錯誤:

  • 最初,我嘗試刪除我的node_modules資料夾(從前端
    工作區/資料夾)並重新執行 npm install 以重新安裝
    的依賴關係。然而,這並沒有解決問題。

  • 然後,我現在明白我應該切換已棄用的
    演算法轉為遺留模式以解決相容性問題。
    而且,在瀏覽已棄用的演算法時,它讓我
    讓我想起了我在
    中學到的 PGP(Pretty Good Privacy)中的 SHA-1 大學前一個學期,主修電腦網路。 SHA-1 是一種雜湊
    由於
    ,該演算法已成為已棄用的演算法 安全問題。

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

繼續主題,因為我的應用程式是一個非關鍵應用程序,也需要一些向後相容性,所以我決定繼續使用--openssl-legacy-provider 標誌作為臨時解決方法,因為這對我有幫助詳細了解可能發生的錯誤,以了解更多原因和解決方法,以及在此過程中可能遇到的其他各種術語。

--openssl-legacy-provider 透過指示 Node.js 使用 OpenSSL 的舊版提供者來啟用舊版演算法,從而恢復對此類加密函數的支援。

所以,在終端機中,我從以下內容開始:

npm update
npm audit fix — force 

登入後複製

然後,在 package.json 檔案上,我做了以下變更:

之前:

"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 的詳細功能、版本的管理方式、已棄用的和遺留的算法等.

以上是我透過錯誤訊息「錯誤:數位信封例程::不支援」學到的知識的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板