Internet Explorer 将保存的密码存储在哪里? [关闭]
Posted
技术标签:
【中文标题】Internet Explorer 将保存的密码存储在哪里? [关闭]【英文标题】:Where does Internet Explorer store saved passwords? [closed] 【发布时间】:2011-03-02 16:49:29 【问题描述】:Internet Explorer 将保存的密码存储在哪里?
由于这是一个编程网站,我并不是在问 IE 存储密码的位置,而是 IE 使用哪个 API 来保存密码。
起初我以为微软使用的是标准 api:
CredRead
CredWrite
用于保存域和通用程序/网站凭据。
CredRead
/CredWrite
然后转身使用:
CryptProtectData
CryptUnprotectData
使用当前用户的帐户加密数据。 CredRead
/CredWrite
然后将数据存储在某个神奇的位置,您可以从控制面板中看到其中的内容:
但我没有在其中看到 IE 密码。所以IE不会使用CredRead
/CredWrite
来存储密码。
IE 使用什么 API 来存储密码,如果它使用 CryptProtectData
,那么它会在哪里存储受保护的数据?
编辑:我问的原因不需要解释(因为它很明显),但这是因为我可能想使用相同的机制。
【问题讨论】:
【参考方案1】:不保证,但我怀疑 IE 使用较旧的 Protected Storage API。
【讨论】:
你说对了一部分。 Internet Explorer 4-6 使用受保护的存储 API。 IE 7-8 将密码存储在注册表和文件中,具体取决于密码类型。 PSAPI 很久以前就被弃用了。 IE6 上次使用它。【参考方案2】:我找到了答案。 IE 根据密码类型将密码存储在两个不同的位置:
Http-Auth:%APPDATA%\Microsoft\Credentials
,在加密文件中
基于表单: HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2
,使用 url 加密
来自very good page on NirSoft.com:
从 Internet 7.0 版本开始 Explorer,微软彻底改变 密码的保存方式。在 以前的版本 (4.0 - 6.0),所有 密码被保存在一个特殊的 在注册表中的位置称为 “受保护的存储”。在 7.0 版中 Internet Explorer 的密码是 保存在不同的位置, 取决于密码的类型。 每种类型的密码都有一些 密码恢复的限制:
自动完成密码:这些 密码保存在下面 在注册表中的位置:
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2
密码使用 URL 加密 的网站要求 密码,因此它们只能是 如果 URL 存储在 历史文件。如果你清除 历史文件,IE PassView 不会 能够恢复密码,直到 您再次访问的网站 要求输入密码。 或者,您可以添加一个列表 需要用户的网站的 URL 名称/密码到网站文件中 (见下文)。HTTP 身份验证 密码: 这些密码存储在 在凭据文件下
Documents and Settings\Application Data\Microsoft\Credentials
,一起 带有局域网计算机的登录密码 和其他密码。由于安全 限制,IE PassView 可以恢复 仅当您拥有这些密码时 管理员权限。
在我的特殊情况下,它回答了在哪里的问题;我决定我不想复制它。我将继续使用CredRead
/CredWrite
,用户可以在 Windows 中已建立的 UI 系统中管理他们的密码。
【讨论】:
如果它们位于架子上的旧硬盘驱动器上,您能找回它们吗?不是你里面的你,而是一般意义上的你。 :) @dlackey 从概念上讲这是可能的,只要您知道旧的 Windows 密码。【参考方案3】:简答:在保险柜中。从 Windows 7 开始,创建了一个 Vault 用于在其中存储任何敏感数据和 Internet Explorer 的凭据。 Vault 实际上是一个 LocalSystem 服务 - vaultsvc.dll。
长答案: Internet Explorer 允许两种凭据存储方法:网站凭据(例如:您的 Facebook 用户和密码)和自动完成数据。从版本 10 开始,引入了一个新术语,而不是使用注册表:Windows Vault。 Windows Vault 是凭据管理器信息的默认存储库。
您需要检查正在运行的操作系统。如果是 Windows 8 或更高版本,则调用 VaultGetItemW8。如果不是,则调用 VaultGetItemW7。
要使用“Vault”,您需要加载一个名为“vaultcli.dll”的 DLL 并根据需要访问其功能。
典型的 C++ 代码是:
hVaultLib = LoadLibrary(L"vaultcli.dll");
if (hVaultLib != NULL)
pVaultEnumerateItems = (VaultEnumerateItems)GetProcAddress(hVaultLib, "VaultEnumerateItems");
pVaultEnumerateVaults = (VaultEnumerateVaults)GetProcAddress(hVaultLib, "VaultEnumerateVaults");
pVaultFree = (VaultFree)GetProcAddress(hVaultLib, "VaultFree");
pVaultGetItemW7 = (VaultGetItemW7)GetProcAddress(hVaultLib, "VaultGetItem");
pVaultGetItemW8 = (VaultGetItemW8)GetProcAddress(hVaultLib, "VaultGetItem");
pVaultOpenVault = (VaultOpenVault)GetProcAddress(hVaultLib, "VaultOpenVault");
pVaultCloseVault = (VaultCloseVault)GetProcAddress(hVaultLib, "VaultCloseVault");
bStatus = (pVaultEnumerateVaults != NULL)
&& (pVaultFree != NULL)
&& (pVaultGetItemW7 != NULL)
&& (pVaultGetItemW8 != NULL)
&& (pVaultOpenVault != NULL)
&& (pVaultCloseVault != NULL)
&& (pVaultEnumerateItems != NULL);
然后您通过调用枚举所有存储的凭据
VaultEnumerateVaults
然后你检查结果。
【讨论】:
以上是关于Internet Explorer 将保存的密码存储在哪里? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Internet Explorer 缺乏占位符支持,特别是密码字段
从 Internet Explorer 中删除清除和显示密码图标
Internet Explorer(IE11)无法打开基本认证窗口。
在 Internet Explorer 上将 Raphaël 图像保存为 PNG