python3读取MySQL-Front的MYSQL密码


Posted in Python onMay 03, 2017

前言

同样的套路又来了,继续尝试从配置文件中读取敏感的信息,这次轮到的是MySQL-Front

MySQL-Front就一款开源的mysql管理工具,官方网站http://www.mysqlfront.de/ 。

配置文件的路径:

MySQL-Front的配置文件存在用户目录下,环境变量是%appdata% 。

在windows7下的存储路径是:

C:\Users\%user%\AppData\Roaming\MySQL-Front\Accounts.xml

Accounts.xml这个XML文件里面存储了所有重要的信息,且密码默认不是加密的。上次我忘记mysql root用户的密码,打开这个文件立马就找回密码,

这个算是不加密的好处吧。→_→不过总有刁民想害朕,还是需要保护好这些重要的信息,以免被坏人读取到。

格式化XML

Accounts.xml 中的内容是被压缩成一行的。需要格式化成好看的格式。这类在线工具搜索一下就可以找得到。

Accounts.xml 格式化后的内容如下:

<?xml version="1.0" encoding="utf-8"?>
<accounts version="1.1.0">
 <default>127.0.0.1</default>
 <account name="127.0.0.1">
 <lastlogin>42847.9391816088</lastlogin>
 <manualurl version="5.0.22-community-nt"></manualurl>
 <connection>
  <database></database>
  <host>127.0.0.1</host>
  <library>
  <filename>libMySQL.dll</filename>
  <tunnel_url></tunnel_url>
  </library>
  <password encode="none">root</password>
  <port>3306</port>
  <user>root</user>
 </connection>
 <favorites />
 </account>
 <account name="daqin">
 <lastlogin>0</lastlogin>
 <manualurl version=""></manualurl>
 <connection>
  <database></database>
  <host>127.0.0.1</host>
  <library>
  <filename>libMySQL.dll</filename>
  <tunnel_url></tunnel_url>
  </library>
  <password encode="none">daqin</password>
  <port>3306</port>
  <user>daqin</user>
 </connection>
 <favorites />
 </account>
</accounts>

python处理XML、HTML的利器PyQuery

我出于要练习的目的,想要用python的XML标准库处理XML ,但是发python 内置提供了好几种方法:xml.sax xml.dom xml.minidom

以及还有xml.parsers.expat ,选择太多,还是决定用PyQuery,PyQuery是依赖于lxml实现的jquery风格的xml解析和处理库。

lxml算是python很重要的库了,已知pandas,BeautifulSoup等等这些库有部分功能依赖lxml。

输入命令安装即可:

pip install pyquery

看完教程后就能把代码写出来了↓↓↓

python3 读取 MySQL-Front 的密码:

# -*- coding: utf-8 -*-
"""
Created on 2017-04-22 22:53:35

@author: codegay
"""
import os
from pyquery import PyQuery as pyq

xmlpath = os.environ['appdata']+r'\MySQL-Front\Accounts.xml'

root = pyq(filename=xmlpath)
for r in root('connection').items():
 print("----------------------------------------------")
 print('host:',r('host').text())
 print('username:',r('user').text())
 print('password:',r('password').text())

运行代码后输出:

----------------------------------------------
host: 127.0.0.1
username: root
password: root
----------------------------------------------
host: 127.0.0.1
username: daqin
password: daqin

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持三水点靠木!

Python 相关文章推荐
Python的collections模块中的OrderedDict有序字典
Jul 07 Python
R vs. Python 数据分析中谁与争锋?
Oct 18 Python
Python读取mat文件,并转为csv文件的实例
Jul 04 Python
Python 单元测试(unittest)的使用小结
Nov 14 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
Aug 13 Python
关于numpy.where()函数 返回值的解释
Dec 06 Python
Pytorch实现基于CharRNN的文本分类与生成示例
Jan 08 Python
python3 sorted 如何实现自定义排序标准
Mar 12 Python
python如何编写win程序
Jun 08 Python
Python tkinter界面实现历史天气查询的示例代码
Aug 23 Python
几款Python编译器比较与推荐(小结)
Oct 15 Python
python re.match()用法相关示例
Jan 27 Python
Python判断变量是否为Json格式的字符串示例
May 03 #Python
Windows和Linux下Python输出彩色文字的方法教程
May 02 #Python
python中字符串类型json操作的注意事项
May 02 #Python
python实现逻辑回归的方法示例
May 02 #Python
pycharm中连接mysql数据库的步骤详解
May 02 #Python
Python多线程实现同步的四种方式
May 02 #Python
Python之Web框架Django项目搭建全过程
May 02 #Python
You might like
mysql下创建字段并设置主键的php代码
2010/05/16 PHP
PHP基础学习之流程控制的实现分析
2013/04/28 PHP
header导出Excel应用示例
2014/01/24 PHP
php使用PDO操作MySQL数据库实例
2014/12/30 PHP
Laravel搭建后台登录系统步骤详解
2016/07/26 PHP
降低PHP Redis内存占用
2017/03/23 PHP
php实现生成带二维码图片并强制下载功能
2018/02/24 PHP
基于PHP的微信公众号的开发流程详解
2020/08/07 PHP
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
IE下js调试工具Companion.JS
2010/10/15 Javascript
设置iframe的document.designMode后仅Firefox中其body.innerHTML为br
2012/02/27 Javascript
JqueryMobile动态生成listView并实现刷新的两种方法
2014/03/05 Javascript
JavaScript定义变量和变量优先级问题探讨
2014/10/11 Javascript
jQuery实现高亮显示网页关键词的方法
2015/08/07 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
JavaScript中的各种操作符使用总结
2016/05/26 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
VueJs使用Amaze ui调整列表和内容页面
2017/11/30 Javascript
详解 vue better-scroll滚动插件排坑
2018/02/08 Javascript
vue 实现的树形菜的实例代码
2018/03/19 Javascript
解决vue中使用Axios调用接口时出现的ie数据处理问题
2018/08/13 Javascript
JS script脚本中async和defer区别详解
2020/06/24 Javascript
Python的Django框架安装全攻略
2015/07/15 Python
Python读写txt文本文件的操作方法全解析
2016/06/26 Python
Python3中的bytes和str类型详解
2019/05/02 Python
如何使用canvas绘制可移动网格的示例代码
2020/12/14 HTML / CSS
全球知名提供各类营养保健品的零售商:Vitamin Shoppe
2016/10/09 全球购物
ECCO爱步美国官网:来自丹麦的鞋履品牌
2016/11/23 全球购物
Superdry极度干燥美国官网:英国制造的服装品牌
2018/11/13 全球购物
为什么要优先使用同步代码块而不是同步方法?
2013/01/30 面试题
应用化学专业职业生涯规划书
2013/12/31 职场文书
2015年社区创卫工作总结
2015/04/21 职场文书
师德师风主题教育活动总结
2015/05/07 职场文书
初二物理教学反思
2016/02/19 职场文书
MySQL infobright的安装步骤
2021/04/07 MySQL