首頁 >後端開發 >Python教學 >如何從MySQL-Front讀取使用者密碼

如何從MySQL-Front讀取使用者密碼

Y2J
Y2J原創
2017-05-12 10:30:432428瀏覽

本篇文章主要介紹了python3讀取MySQL-Front的MYSQL密碼的相關知識,具有很好的參考價值。下面跟著小編一起來看下吧

前言

同樣的套路又來了,繼續嘗試設定檔中讀取敏感的資訊,這次輪到的是MySQL-Front

MySQL-Front就一款開源的mysql管理工具,官方網站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[&#39;appdata&#39;]+r&#39;\MySQL-Front\Accounts.xml&#39;

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

執行程式碼後輸出:


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

以上是如何從MySQL-Front讀取使用者密碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn