bcrypt.dll 未能启动怎么办?

开机弹窗"bcrypt.dll 未能启动",或者某个程序打开时报"无法启动此程序,因为计算机中丢失 bcrypt.dll"。bcrypt.dll 是 Windows 自带的加密基础库,负责哈希、随机数、证书相关操作,不是第三方组件。

一、这个文件为什么会出问题

  • 系统文件损坏:断电、蓝屏、硬盘坏道导致 System32 下的 dll 被破坏
  • 被杀毒软件误删:某些安全软件会隔离系统 dll,尤其是被其他程序调用的场景
  • 被恶意程序替换:病毒用同名文件覆盖,加载时报错或行为异常
  • 运行库缺失:bcrypt 依赖的底层组件不全,间接导致加载失败
  • 32/64 位混淆:把 32 位的 bcrypt.dll 塞进 System32,或者反过来

正常位置:64 位系统在 C:\Windows\System32\bcrypt.dll,32 位兼容层在 C:\Windows\SysWOW64\bcrypt.dll,两个文件都应该存在。

二、第一步先别急着下载 dll

网上那些"dll 下载站"给的 bcrypt.dll 大概率不对版,甚至带木马。bcrypt.dll 是系统核心文件,正确做法是用系统自带工具修复,而不是替换。

先确认文件在不在、签名对不对:

dir C:\Windows\System32\bcrypt.dll
dir C:\Windows\SysWOW64\bcrypt.dll

右键看属性 → 数字签名,正常应该是 Microsoft Windows 签名。签名无效或者根本没有签名,说明文件被替换了。

三、按顺序修复

1. sfc 系统文件检查

管理员打开命令提示符:

sfc /scannow

它会扫描所有受保护的系统文件,发现损坏或版本不对的自动从系统缓存里恢复。跑完会给出结果,如果提示"找到了损坏文件并成功修复",重启就行。

2. DISM 修复系统映像

sfc 修不了的时候,说明系统缓存本身也坏了,用 DISM 从 Windows Update 拉取源文件:

DISM /Online /Cleanup-Image /RestoreHealth

这条命令比较慢,十几分钟很正常。跑完再执行一次 sfc /scannow,两步配合成功率最高。

3. 检查杀毒软件隔离区

如果 sfc 修复完重启又没了,八成是杀毒软件干的。打开安全软件的隔离区/恢复区,找到 bcrypt.dll 恢复,并把 C:\Windows\System32 加入排除列表。别整个 C 盘加白,只加系统目录。

4. 安装 Visual C++ 运行库

虽然 bcrypt 是系统组件,但调用它的程序往往需要 VC++ 运行库。2015-2022 的 x86 和 x64 都装上,重启再试。

5. 系统还原或就地升级

以上都不行,用系统还原点回到出问题之前。没有还原点的话,做一次"就地升级"——下载 Windows 安装镜像,运行 setup.exe 选"保留个人文件和应用",相当于重装系统文件但不动数据。这比全新安装省事,也能修好绝大多数系统文件问题。

四、几个容易走偏的处理

  • 从别人电脑拷 bcrypt.dll:系统版本不同,文件版本可能不匹配,还可能因为权限问题加载失败。就算要拷,也要版本号一致。
  • regsvr32 注册 bcrypt.dll:bcrypt.dll 不是 COM 组件,注册必然失败,报"找不到入口点 DllRegisterServer"。
  • 删掉报错的程序:报错的是调用方,删程序不解决系统文件损坏的问题,其他程序还会报。
  • 直接重装系统:没必要,sfc + DISM 能解决大部分情况,先试这个。

五、怎么确认修好了

重启后看开机还有没有弹窗,再运行之前报错的程序。另外可以用 PowerShell 校验一下文件版本:

(Get-Item C:\Windows\System32\bcrypt.dll).VersionInfo.FileVersion

能正常输出且带 Microsoft 签名,基本就没问题了。