本篇文章主要介紹了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['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
以上是如何從MySQL-Front讀取使用者密碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!