You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python3.11.2中pywin32(win32crypt)无法使用求助

Python 3.11.2下win32crypt无法使用的解决方案(Chrome密码提取程序)

针对你遇到的pywin32已安装但win32crypt无法正常工作的问题,按以下步骤排查解决:

1. 重新注册pywin32组件

pywin32安装后需要注册到系统才能正常调用,默认安装可能未完成这一步:

  • 打开命令提示符,导航到Python 3.11的Scripts目录(路径示例:cd C:\Users\hp\AppData\Local\Programs\Python\Python311\Scripts)
  • 执行命令:python pywin32_postinstall.py -install
  • 执行完成后重启命令提示符,再运行你的程序。

2. 基础功能验证

先编写极简脚本确认win32crypt本身是否可用,排除代码逻辑干扰:

import win32crypt

# 测试加密解密功能
test_str = b"test_win32crypt"
encrypted_data = win32crypt.CryptProtectData(test_str, None, None, None, None, 0)
decrypted_data = win32crypt.CryptUnprotectData(encrypted_data, None, None, None, 0)[1]

print(f"解密结果: {decrypted_data.decode()}")

如果这个脚本报错,说明pywin32安装或注册有问题;如果正常输出,再排查你的Chrome密码提取代码。

3. 卸载重装pywin32

若注册无效,彻底卸载后重装适配Python3.11的版本:

  • 卸载:pip uninstall pywin32 -y
  • 重装指定版本:pip install pywin32==306(或执行pip install pywin32 --upgrade获取最新兼容版本)
  • 再次执行步骤1的注册命令。

4. 检查运行权限

右键命令提示符,选择「以管理员身份运行」后再执行程序。访问Chrome用户数据目录可能需要管理员权限,UAC限制会导致win32crypt调用失败。

5. 代码细节修正

你的代码中有两处需要调整:

  • 字符串转义问题:将所有os.environ[\"USERPROFILE\"]改为os.environ['USERPROFILE'],避免双引号转义错误。
  • 避免文件占用:运行程序前关闭所有Chrome窗口,否则Login Data文件被进程占用会导致复制失败,后续数据库操作出错。

6. 适配Chrome加密逻辑(可选)

若win32crypt正常工作但密码解密失败,需确认Chrome版本:新版Chrome对加密密钥的处理可能有更新,检查Local State文件中os_crypt的结构是否与代码匹配。

内容的提问来源于stack exchange,提问作者Tub

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.25 19:20:06