title: 导出Chrome浏览器中保存的密码
date: 2018-02-11 17:54:51
tags:
导出Chrome浏览器中保存的密码
先知看到的,挺有意思,记录一下
不同浏览器的密码路径:
360:
C:\Users\1\Local Settings\Application Data\360Chrome\Chrome\User Data\
C:\Users\1\AppData\Local\360Chrome\Chrome\User Data\
chrome:
C:\Users\1\Local Settings\Application Data\Google\Chrome\User Data\
C:\Users\1\AppData\Local\Google\Chrome\User Data\
使用工具读取数据库文件,测试工具: SQLiteStudio
下载地址:
https://sqlitestudio.pl/index.rvt
Chrome做二次加密的方法: 通过Windows API CryptProtectData()实现
参考加密代码:
CryptProtectData()的说明可参考:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa380261(v=vs.85).aspx
获得关键信息:
(1)对应解密函数为CryptUnprotectData
参考地址:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa380882(v=vs.85).aspx
(2)只有与加密数据的用户具有相同登录凭据的用户才能解密数据
也就是说,只能在当前用户的凭据下解密数据
解密的开源代码也有很多,这里给出一个示例:
from os import getenv
import sqlite3
import win32crypt
import binascii
conn = sqlite3.connect(getenv("APPDATA") + "\..\Local\Google\Chrome\User Data\Default\Login Data")
cursor = conn.cursor()
cursor.execute('SELECT action_url, username_value, password_value FROM logins')
for result in cursor.fetchall():
password = win32crypt.CryptUnprotectData(result[2], None, None, None, 0)[1]
print password
注:
调用win32crypt.CryptUnprotectData需要安装pywin32
下载地址:
http://sourceforge.net/projects/pywin32/files/pywin32/Build 219/pywin32-219.win32-py2.7.exe