在使用 VS Code 进行代码开发时,经常会遇到需要跳转到定义或者引用的场景。但有时会出现 ERR_OSSL_EVP_BAD_DECRYPT 错误,导致跳转失败。本文将深入分析该问题的成因,并提供多种解决方案。
问题场景重现
该问题通常出现在以下场景:
- 更新 VS Code 后。
- 修改了系统环境变量后。
- 使用了某些特定的 VS Code 插件后。
- 打开大型项目时。
具体表现为:在代码中点击“跳转到定义”或者“查找所有引用”时,VS Code 报错 ERR_OSSL_EVP_BAD_DECRYPT,无法正常跳转。
底层原理深度剖析
ERR_OSSL_EVP_BAD_DECRYPT 错误通常与 OpenSSL 相关,OpenSSL 是一个开源的密码学工具包,被广泛应用于各种网络应用中。在 VS Code 中,一些插件或者内置功能可能会使用 OpenSSL 来进行加密解密操作。
当密钥或者加密算法不匹配时,就会出现解密失败的情况,从而抛出 ERR_OSSL_EVP_BAD_DECRYPT 错误。 这种情况可能发生在 VS Code 的某些配置数据被加密存储,但在后续尝试解密时,密钥或者环境发生了变化,导致解密失败。
这与服务器架构中常见的 HTTPS 配置错误类似,例如证书链不完整,或者 Nginx 配置的加密套件与客户端不兼容,同样会导致 SSL 连接错误。
解决方案
以下是几种常见的解决方案,可以逐一尝试:
重启 VS Code
这是最简单的解决方案,有时可以解决一些临时性的问题。
重启电脑
重启电脑可以清理一些缓存,有时也可以解决问题。
删除 VS Code 的缓存和配置
VS Code 会将一些配置信息和缓存数据存储在用户目录下。删除这些数据可以重置 VS Code 的状态,有时可以解决问题。

- Windows:
%APPDATA%\Code和%USERPROFILE%\.vscode - macOS:
~/Library/Application Support/Code和~/.vscode - Linux:
~/.config/Code和~/.vscode
删除以上目录后,重新启动 VS Code,它会重新生成这些目录。
- Windows:
卸载并重新安装 VS Code
如果删除缓存和配置无效,可以尝试卸载并重新安装 VS Code。在卸载前,建议备份用户配置,以免丢失重要数据。
检查环境变量
某些环境变量可能会影响 VS Code 的运行。检查以下环境变量是否正确设置:
NODE_OPTIONSOPENSSL_CONF
如果发现错误的环境变量,请修改为正确的值。

更新 Node.js
VS Code 依赖 Node.js 运行。如果 Node.js 版本过低,可能会导致一些问题。建议更新 Node.js 到最新版本。
可以使用
nvm(Node Version Manager) 来管理 Node.js 版本:nvm install node # 安装最新版本的 Node.js nvm use node # 使用最新版本的 Node.js检查并更新 VS Code 扩展插件
某些扩展插件可能会依赖特定版本的 OpenSSL 或者 Node.js,更新这些插件到最新版本可以解决兼容性问题。
修改 VS Code 启动参数

在 VS Code 的启动参数中,可以指定使用的 OpenSSL 配置。尝试添加
--openssl-config参数,指向一个有效的 OpenSSL 配置文件。例如,在 VS Code 的快捷方式中,修改目标为:
"C:\Program Files\Microsoft VS Code\Code.exe" --openssl-config "C:\path\to\openssl.cnf"其中
C:\path\to\openssl.cnf是 OpenSSL 配置文件的路径。注意:修改启动参数可能存在风险,请谨慎操作。
实战避坑经验总结
- 遇到
ERR_OSSL_EVP_BAD_DECRYPT错误时,不要慌张,先尝试重启 VS Code 和电脑。 - 删除缓存和配置时,注意备份重要数据。
- 检查环境变量时,注意区分用户环境变量和系统环境变量。
- 更新 Node.js 时,建议使用
nvm来管理版本。 - 修改 VS Code 启动参数时,请谨慎操作,并备份原始配置。
该问题与服务器环境的配置问题也有类似之处,例如 Nginx 配置 HTTPS 时,如果证书链不完整或者加密套件配置不当,也会导致类似的 SSL 连接错误。因此,解决该问题的思路也可以借鉴服务器配置的经验。
总结,解决 VS Code ERR_OSSL_EVP_BAD_DECRYPT 的关键在于找到导致解密失败的原因,并采取相应的措施。希望本文提供的解决方案能够帮助你解决问题。
冠军资讯
键盘上的咸鱼