當我在開發全端應用程式時,我遇到了這個加密錯誤,當我在StackOverflow 和ChatGPT 上搜尋它時,我知道它是由於Node.js 對OpenSSL 的處理方式發生變化而出現的,影響了加密操作,即我的應用程式嘗試使用與Node.js 捆綁的當前OpenSSL 版本不再支援的加密演算法或功能。所以,錯誤實際上來自於我下載的依賴項,依賴過時版本的 SSL。
因此,要修正此錯誤:
最初,我嘗試刪除我的node_modules資料夾(從前端
工作區/資料夾)並重新執行 npm install 以重新安裝
的依賴關係。然而,這並沒有解決問題。
然後,我現在明白我應該切換已棄用的
演算法轉為遺留模式以解決相容性問題。
而且,在瀏覽已棄用的演算法時,它讓我
讓我想起了我在
中學到的 PGP(Pretty Good Privacy)中的 SHA-1
大學前一個學期,主修電腦網路。 SHA-1 是一種雜湊
由於
,該演算法已成為已棄用的演算法
安全問題。
繼續主題,因為我的應用程式是一個非關鍵應用程序,也需要一些向後相容性,所以我決定繼續使用--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中文網其他相關文章!