基于PyQt的Python识别Access密码,pyqtpythonaccess,[Python]代码#
基于PyQt的Python识别Access密码,pyqtpythonaccess,[Python]代码#
[Python]代码
# -*- coding: utf-8 -*-# Form implementation generated from reading ui file 'F:\Python\PyAccess.ui'## Created: Thu Feb 23 15:07:51 2012# by: PyQt4 UI code generator 4.9.1## WARNING! All changes made in this file will be lost!from PyQt4 import QtCore, QtGuitry: _fromUtf8 = QtCore.QString.fromUtf8except AttributeError: _fromUtf8 = lambda s: sclass PYAccess(object): def setupUi(self, MainWindow): MainWindow.setObjectName(_fromUtf8("MainWindow")) MainWindow.resize(397, 91) MainWindow.setMaximumSize(QtCore.QSize(397, 91)) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(_fromUtf8("Access.ico")), QtGui.QIcon.Normal, QtGui.QIcon.Off) MainWindow.setWindowIcon(icon) self.centralWidget = QtGui.QWidget(MainWindow) self.centralWidget.setObjectName(_fromUtf8("centralWidget")) self.btnSelectFile = QtGui.QPushButton(self.centralWidget) self.btnSelectFile.setGeometry(QtCore.QRect(290, 20, 91, 23)) self.btnSelectFile.setObjectName(_fromUtf8("btnSelectFile")) self.tbFilePath = QtGui.QLineEdit(self.centralWidget) self.tbFilePath.setGeometry(QtCore.QRect(20, 20, 261, 20)) self.tbFilePath.setObjectName(_fromUtf8("tbFilePath")) self.tbVersion = QtGui.QLineEdit(self.centralWidget) self.tbVersion.setGeometry(QtCore.QRect(20, 50, 111, 20)) self.tbVersion.setObjectName(_fromUtf8("tbVersion")) self.tbPassword = QtGui.QLineEdit(self.centralWidget) self.tbPassword.setGeometry(QtCore.QRect(160, 50, 221, 20)) self.tbPassword.setObjectName(_fromUtf8("tbPassword")) MainWindow.setCentralWidget(self.centralWidget) self.retranslateUi(MainWindow) QtCore.QObject.connect(self.btnSelectFile, QtCore.SIGNAL(_fromUtf8("clicked()")), self.slotselectfile) QtCore.QMetaObject.connectSlotsByName(MainWindow) def slotselectfile(self): fname = QtGui.QFileDialog.getOpenFileName(MainWindow, 'Open Access File','/*.mdb') if fname=='': return else: self.tbFilePath.setText(fname) # 未加密的文件0x42开始至0x61之前的每间隔一字节的数值 baseByte=[0xbe, 0xec, 0x65, 0x9c, 0xfe,0x28, 0x2b, 0x8a, 0x6c, 0x7b,0xcd, 0xdf, 0x4f, 0x13, 0xf7,0xb1] # 标志 0x62 处的数值 flagByte = 0x0c # 定义密码字符串 password = ''; # 读取方式打开文件并复制给fs fs=open(fname,'r') fs.seek(0x14) version='unknow' ver = ord(fs.read(1)) if ver==1: version='Access2000' elif ver==0: version='Access97' fs.seek(0x42) bs=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0] integer = 0 while integer < 33: tmpInt=ord(fs.read(1)) bs[integer]=tmpInt integer=integer+1 #标记 flag = bs[32] ^ flagByte # 开始循环 i = 0 while i < 16: b = (baseByte[i] ^ bs[i * 2]) if i % 2 == 0 and ver == 1: b = b^flag; if b > 0 : password = password + chr(b) i=i+1 fs.close() self.tbVersion.setText(version) self.tbPassword.setText(password) def retranslateUi(self, MainWindow): MainWindow.setWindowTitle(QtGui.QApplication.translate("MainWindow", "Access 数据库密码破解工具", None, QtGui.QApplication.UnicodeUTF8)) self.btnSelectFile.setText(QtGui.QApplication.translate("MainWindow", " 选择文件 ...", None, QtGui.QApplication.UnicodeUTF8)) self.tbFilePath.setText(QtGui.QApplication.translate("MainWindow", "Access文件路径,请点击右侧“选择文件” ", None, QtGui.QApplication.UnicodeUTF8)) self.tbVersion.setText(QtGui.QApplication.translate("MainWindow", " 版本信息 ", None, QtGui.QApplication.UnicodeUTF8)) self.tbPassword.setText(QtGui.QApplication.translate("MainWindow", " Access 文件密码 ", None, QtGui.QApplication.UnicodeUTF8))if __name__ == "__main__": import sys app = QtGui.QApplication(sys.argv) MainWindow = QtGui.QMainWindow() ui = PYAccess() ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())
相关内容
- 用来调试嵌入式服务器连接数,写的简单python脚本,嵌
- 利用Flask实现在线Whois 域名查询,flaskwhois,[Python]代码
- (Python学习)CSV电话本,python学习csv电话,CSV电话本#Fil
- 一段阅读英语的小代码,一段阅读英语代码,[Python]代码
- 遍历文件,遍历,[Python]代码im
- 猜数字游戏,,[Python]代码im
- Python实现的Blowfish加解密,pythonblowfish,Blowfish加解密字
- 又是 web.py 页面执行计时,web.py页面执行计时,实现计时
- python code for solving eigenvalue problem by Jacobi’s method,eig
- python queue模块 消息队列,pythonqueue,#!/usr/local
评论关闭