Security Internet Explorer在哪里存储保存的密码?
Internet Explorer在哪里存储保存的密码 由于这是一个编程网站,我不是问IE存储密码的位置,而是问IE使用哪个API保存密码 起初,我假设Microsoft使用的是标准api:Security Internet Explorer在哪里存储保存的密码?,security,internet-explorer,passwords,password-protection,Security,Internet Explorer,Passwords,Password Protection,Internet Explorer在哪里存储保存的密码 由于这是一个编程网站,我不是问IE存储密码的位置,而是问IE使用哪个API保存密码 起初,我假设Microsoft使用的是标准api: 用于保存域和通用程序/网站凭据 CredRead/CredWrite然后转身使用: 使用当前用户的帐户加密数据CredRead/CredWrite然后将数据存储在某个神奇的位置,您可以从控制面板看到其中的内容: 但我在里面没看到IE密码。因此IE不会使用CredRead/CredWrite
CredRead
/CredWrite
然后转身使用:
CredRead
/CredWrite
然后将数据存储在某个神奇的位置,您可以从控制面板看到其中的内容:
但我在里面没看到IE密码。因此IE不会使用CredRead
/CredWrite
存储密码
IE使用什么API来存储密码,如果它使用CryptProtectData
,那么它在哪里存储受保护的数据
编辑:我问的原因不需要解释(因为这很明显),但这是因为我可能想使用相同的机制。不保证,但我怀疑IE使用的是较旧的API。我找到了答案。IE根据密码类型将密码存储在两个不同的位置:
- Http验证:
,在加密文件中%APPDATA%\Microsoft\Credentials
- 基于表单:
,使用url加密HKEY\U CURRENT\U USER\Software\Microsoft\Internet Explorer\IntelliForms\Storage2
- 自动完成密码:这些
密码保存在以下位置:
在注册表中的位置:
密码是用URL加密的 请求 密码,因此它们只能是 如果URL存储在中,则已恢复 历史文件。如果你清除了 历史记录文件,即PassView不会被删除 能够恢复密码,直到 您再次访问 询问密码。 或者,您可以添加以下内容的列表: 需要用户权限的网站的URL 将名称/密码输入网站文件 (见下文)HKEY\U当前用户\软件\微软\互联网 Explorer\IntelliForms\Storage2
- HTTP身份验证
密码:存储这些密码
在下面的凭据文件中
,一起 使用局域网计算机的登录密码 和其他密码。由于安全原因 限制,即PassView可以恢复 这些密码只有在您有 管理员权限文档和设置\应用程序 Data\Microsoft\Credentials
在我的特殊情况下,它回答了在哪里的问题;我决定我不想重复这一点。我将继续使用
CredRead
/CredWrite
,用户可以从Windows中已建立的UI系统中管理密码。简短回答:。自Windows 7以来,创建了一个Vault,用于存储其中的任何敏感数据,即Internet Explorer的凭据。
Vault实际上是一个LocalSystem服务-vaultsvc.dll
长答案:
Internet Explorer允许两种凭据存储方法:网站凭据(例如:您的Facebook用户和密码)和自动完成数据。从版本10开始,引入了一个新术语:Windows Vault,而不是使用注册表。Windows Vault是凭据管理器信息的默认存储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 4-6使用受保护的存储API。IE 7-8根据密码类型将密码存储在注册表和文件中。PSAPI早就被弃用了。IE6上次用过。如果它们在架子上的旧硬盘上,你能取回它们吗?不是你自己,而是一般意义上的你。:)@dlackey从概念上讲这是可能的,只要您知道旧的Windows密码。