آموزش ساخت یک کرک کننده هش (HASH Cracker) گرافیکی در پایتون - قسمت 1 از 2 :: Mr Python | مستر پایتون

آموزش ساخت یک کرک کننده هش (HASH Cracker) گرافیکی در پایتون - قسمت 1 از 2

  • ۱۳۹۲

آموزش ساخت یک کرک کننده هش (HASH Cracker) گرافیکی در پایتون - قسمت 1 از 2

درود به همه !

 

خب خب خب . بالاخره برگشتیم با یه پست خیلی باحال . باید بگم که قراره کلی متفاوت باشیم با کارای قبلیمون . تا الان کلی ابزار هکینگ باهم ساختیم و لذت بردیم :) . ولی همشون CLI و کنسولی بودن . امروز میخوایم یک hash cracker گرافیکی باهم بسازیم . بله گرافیکی ! اونم با کتابخونه ی قدرتمند PyQt5 که برای طراحی گرافیک کار اصلا نیاز به کدنویسی نداریم بلکه به صورت بصری اونو طراحی میکنیم و خود ابزار های پایتون اونو برامون به کد پایتون تبدیل میکنن . این مجموعه در دو قسمت تقدیم حضورتون میشه . قسمت اول گرافیک و رابط کاربری کار رو میزنیم و در قسمت دوم میایم توابع و کد های مربوط به کرک کردن هش رو مینویسیم . با ما همراه باشید :)

 

نکته : پیشنیاز درک بهتر این ویدیو ، مسلط بودن به مباحث شیء گرایی در پایتون است .

 

 

 

سورس تولید شده توسط PyQt در ویدیو :

# -*- coding: utf-8 -*-

# Form implementation generated from reading ui file 'C:\Users\Hossein\Desktop\hashcracker.ui'
#
# Created by: PyQt5 UI code generator 5.15.4
#
# WARNING: Any manual changes made to this file will be lost when pyuic5 is
# run again.  Do not edit this file unless you know what you are doing.


from PyQt5 import QtCore, QtGui, QtWidgets


class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(370, 399)
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit.setGeometry(QtCore.QRect(10, 40, 281, 31))
        font = QtGui.QFont()
        font.setPointSize(11)
        self.lineEdit.setFont(font)
        self.lineEdit.setText("")
        self.lineEdit.setObjectName("lineEdit")
        self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
        self.lineEdit_2.setGeometry(QtCore.QRect(10, 80, 281, 31))
        font = QtGui.QFont()
        font.setPointSize(11)
        self.lineEdit_2.setFont(font)
        self.lineEdit_2.setObjectName("lineEdit_2")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(300, 80, 60, 30))
        self.pushButton.setObjectName("pushButton")
        self.comboBox = QtWidgets.QComboBox(self.centralwidget)
        self.comboBox.setGeometry(QtCore.QRect(300, 40, 60, 30))
        self.comboBox.setObjectName("comboBox")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.comboBox.addItem("")
        self.label = QtWidgets.QLabel(self.centralwidget)
        self.label.setGeometry(QtCore.QRect(60, 10, 251, 20))
        font = QtGui.QFont()
        font.setPointSize(11)
        font.setBold(True)
        font.setWeight(75)
        self.label.setFont(font)
        self.label.setAlignment(QtCore.Qt.AlignCenter)
        self.label.setObjectName("label")
        self.listWidget = QtWidgets.QListWidget(self.centralwidget)
        self.listWidget.setGeometry(QtCore.QRect(10, 160, 350, 192))
        self.listWidget.setObjectName("listWidget")
        self.progressBar = QtWidgets.QProgressBar(self.centralwidget)
        self.progressBar.setGeometry(QtCore.QRect(10, 360, 351, 23))
        self.progressBar.setProperty("value", 0)
        self.progressBar.setTextVisible(False)
        self.progressBar.setObjectName("progressBar")
        self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton_2.setGeometry(QtCore.QRect(140, 120, 75, 31))
        self.pushButton_2.setStyleSheet("background-color: rgb(255, 71, 71)")
        self.pushButton_2.setObjectName("pushButton_2")
        MainWindow.setCentralWidget(self.centralwidget)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.lineEdit.setPlaceholderText(_translate("MainWindow", "HASH String"))
        self.lineEdit_2.setPlaceholderText(_translate("MainWindow", "Password List Path"))
        self.pushButton.setText(_translate("MainWindow", "OPEN"))
        self.comboBox.setItemText(0, _translate("MainWindow", "MD5"))
        self.comboBox.setItemText(1, _translate("MainWindow", "SHA1"))
        self.comboBox.setItemText(2, _translate("MainWindow", "SHA256"))
        self.label.setText(_translate("MainWindow", "HASH Cracker - MR Python"))
        self.pushButton_2.setText(_translate("MainWindow", "START"))


if __name__ == "__main__":
    import sys
    app = QtWidgets.QApplication(sys.argv)
    MainWindow = QtWidgets.QMainWindow()
    ui = Ui_MainWindow()
    ui.setupUi(MainWindow)
    MainWindow.show()
    sys.exit(app.exec_())

 

اگه سوالی داشتید در بخش نظرات مطرح کنید :) 

آیا مشکلی بود که در قسمت بعدی اونو برطرف کنیم :) ؟

 

Telegram Channel : @mrpythonblog

  • بابا باریکلا

     

    پاسخ:
    :)
  • تریاک فروش صدام کردی 

    یواشکی نگام کردی

    میدونستی معتادم من...

     

    😁

    پاسخ:
    ای بابا از دست این کیخسرو ...

  • وقتی کد رو اجرا میکنم این میاره:

    ValueError: source code string cannot contain null bytes

    پاسخ:
    درود .
    طبق روشی که گفته شد پس از گرفتن خروجی pyuic5 محتویات فایل رو کپی کردین داخل یک فایل جدید ؟
  • سلام داداش من میخوام توی پایتون فارسی بنویسم باید چیکار کتم

    پاسخ:
    درود بر شما .
    داخل خود IDLE پایتون با فارسی نویسی نباید مشکلی باشه . ولی داخل کنسول فک نمیکنم چنین چیزی بشه .

  • سلام من اگه بخوام یه اسکریپت بزارم که یه داده ای دریافت کنه و بعد از پرینت کردن اون خارج نشه

     

    یعنی در کل یه اسکریپتی میخوام بنویسم که وقتی اجرا شد خود به خود خارج نشه

     

    پاسخ:
    سلام . 
    در آخرین خط کد خود یک input خالی بزارید .
    ()input
  • به به خیلی وقت بود نبودی

    مثل همیشه عالی :)

    پاسخ:
    سلام و درود :)
    مچکرم خوشحالم مفید هستن مطالب :)
    شمام خوش برگشتین جناب :)
ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی