python3读取MySQL-Front的MYSQL密码

Life is short, you need Python - Bruce Eckel
Package Index, Python 3.5.3 documentation
头像
超时空偷鸡队
初来炸道
初来炸道
帖子: 12
注册时间: 2017年04月08日 23:09
拥有现金: 锁定
储蓄: 锁定
Been thanked: 2 times

python3读取MySQL-Front的MYSQL密码

帖子 #1 超时空偷鸡队 » 2017年05月03日 06:56

---
title: python3读取MySQL-Front的MYSQL密码
tags: python3,mysql,密码,MySQL-Front
---
前言
同样的套路又来了,继续尝试**从配置文件中读取敏感的信息**,这次轮到的是**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 格式化后的内容如下:**
Code: [全选] [展开/收缩] [Download] (Untitled.xml)
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <accounts version="1.1.0">
  3.     <default>127.0.0.1</default>
  4.     <account name="127.0.0.1">
  5.         <lastlogin>42847.9391816088</lastlogin>
  6.         <manualurl version="5.0.22-community-nt"></manualurl>
  7.         <connection>
  8.             <database></database>
  9.             <host>127.0.0.1</host>
  10.             <library>
  11.                 <filename>libMySQL.dll</filename>
  12.                 <tunnel_url></tunnel_url>
  13.             </library>
  14.             <password encode="none">root</password>
  15.             <port>3306</port>
  16.             <user>root</user>
  17.         </connection>
  18.         <favorites />
  19.     </account>
  20.     <account name="daqin">
  21.         <lastlogin>0</lastlogin>
  22.         <manualurl version=""></manualurl>
  23.         <connection>
  24.             <database></database>
  25.             <host>127.0.0.1</host>
  26.             <library>
  27.                 <filename>libMySQL.dll</filename>
  28.                 <tunnel_url></tunnel_url>
  29.             </library>
  30.             <password encode="none">daqin</password>
  31.             <port>3306</port>
  32.             <user>daqin</user>
  33.         </connection>
  34.         <favorites />
  35.     </account>
  36. </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 的密码:

Code: [全选] [展开/收缩] [Download] (Untitled.txt)
  1. # -*- coding: utf-8 -*-
  2. """
  3. Created on 2017-04-22 22:53:35
  4.  
  5. @author: codegay
  6. """
  7. import os
  8. from pyquery import PyQuery as pyq
  9.  
  10. xmlpath = os.environ['appdata']+r'\MySQL-Front\Accounts.xml'
  11.  
  12. root =  pyq(filename=xmlpath)
  13.  
  14. for r in root('connection').items():
  15.     print("----------------------------------------------")
  16.     print('host:',r('host').text())
  17.     print('username:',r('user').text())
  18.     print('password:',r('password').text())


**运行代码后输出:**
```
----------------------------------------------
host: 127.0.0.1
username: root
password: root
----------------------------------------------
host: 127.0.0.1
username: daqin
password: daqin
```

codegay 2017年5月1日14:14:09

ps:第一次尝试用**小书匠编辑器客户端**,支持markdown,支持一键发布到cnblogs,推荐一下。

#### 参考资料:
pyquery 官方文档(英文) http://pyquery.rtfd.org/
Python爬虫利器六之PyQuery的用法 http://cuiqingcai.com/2636.html
(在线工具)XML格式化 http://web.chacuo.net/formatxml
小书匠编辑器 http://soft.xiaoshujiang.com/download.html
>>>刮开有奖

:happy

头像
523066680
Administrator
Administrator
帖子: 333
注册时间: 2016年07月19日 12:14
拥有现金: 锁定
储蓄: 锁定
Has thanked: 29 times
Been thanked: 22 times
联系:

Re: python3读取MySQL-Front的MYSQL密码

帖子 #2 523066680 » 2017年05月04日 16:33

啊哈,这是 Markdown 写的吧,写一个转换脚本吧。常见的比如 ```code ``` 和 `inline code`,粗体斜体、大标题做一下处理
也会美观很多

头像
超时空偷鸡队
初来炸道
初来炸道
帖子: 12
注册时间: 2017年04月08日 23:09
拥有现金: 锁定
储蓄: 锁定
Been thanked: 2 times

Re: python3读取MySQL-Front的MYSQL密码

帖子 #3 超时空偷鸡队 » 2017年05月05日 05:13

:coverface1 宝宝注意力涣散得很严重。想做的事情很多。这个事先放一放。→_→要不你帅你来写好了。
>>>刮开有奖

:happy

头像
超时空偷鸡队
初来炸道
初来炸道
帖子: 12
注册时间: 2017年04月08日 23:09
拥有现金: 锁定
储蓄: 锁定
Been thanked: 2 times

Re: python3读取MySQL-Front的MYSQL密码

帖子 #4 超时空偷鸡队 » 2017年05月05日 05:16

对,你用PHP写一个,给论坛加这么个功能好了。这样更方便啊。 :exciting4
>>>刮开有奖

:happy

头像
超时空偷鸡队
初来炸道
初来炸道
帖子: 12
注册时间: 2017年04月08日 23:09
拥有现金: 锁定
储蓄: 锁定
Been thanked: 2 times

Re: python3读取MySQL-Front的MYSQL密码

帖子 #5 超时空偷鸡队 » 2017年05月05日 05:23

想了一下,不用PHP。js就可以。
>>>刮开有奖

:happy

头像
超时空偷鸡队
初来炸道
初来炸道
帖子: 12
注册时间: 2017年04月08日 23:09
拥有现金: 锁定
储蓄: 锁定
Been thanked: 2 times

Re: python3读取MySQL-Front的MYSQL密码

帖子 #6 超时空偷鸡队 » 2017年05月05日 06:52

>>>刮开有奖

:happy

头像
523066680
Administrator
Administrator
帖子: 333
注册时间: 2016年07月19日 12:14
拥有现金: 锁定
储蓄: 锁定
Has thanked: 29 times
Been thanked: 22 times
联系:

Re: python3读取MySQL-Front的MYSQL密码

帖子 #7 523066680 » 2017年05月05日 11:48

PHP 或者 JS 加到论坛里面去的,主要是不会。
Perl 转换的写了个大概

头像
超时空偷鸡队
初来炸道
初来炸道
帖子: 12
注册时间: 2017年04月08日 23:09
拥有现金: 锁定
储蓄: 锁定
Been thanked: 2 times

Re: python3读取MySQL-Front的MYSQL密码

帖子 #8 超时空偷鸡队 » 2017年05月05日 15:36

:jiong1 例子都有了。能有多难啊。
做成论坛功能大家都能用。
>>>刮开有奖

:happy

头像
523066680
Administrator
Administrator
帖子: 333
注册时间: 2016年07月19日 12:14
拥有现金: 锁定
储蓄: 锁定
Has thanked: 29 times
Been thanked: 22 times
联系:

Re: python3读取MySQL-Front的MYSQL密码

帖子 #9 523066680 » 2017年05月05日 18:03

你看你,自己推脱了,还不忘甩锅 (逃

头像
超时空偷鸡队
初来炸道
初来炸道
帖子: 12
注册时间: 2017年04月08日 23:09
拥有现金: 锁定
储蓄: 锁定
Been thanked: 2 times

Re: python3读取MySQL-Front的MYSQL密码

帖子 #10 超时空偷鸡队 » 2017年05月05日 20:13

:crazylaugh2 网站权限给我,我来改。
>>>刮开有奖

:happy


回到 “Python”

在线用户

用户浏览此论坛: 没有注册用户 和 1 访客