LoginSignup
7
8

More than 3 years have passed since last update.

【Python】Tkinterによる40行で作るGUIアプリ「ハッシュ化ソフト」

Last updated at Posted at 2019-05-23

はじめに

私の研究分野であるブロックチェーン技術において、ハッシュ関数はめっちゃ大事な技術の一つです。今回はそのハッシュ関数の一種であるSHA256を使って、簡単にハッシュ値を生成できるものを作っていきましょう!コマンドプロンプトに出すだけだと面白くないので、Tkinterを使ってGUIアプリを作成していきます。

ハッシュ関数の具体的な内容に関しては、ブロックチェーン技術及び関連技術の記事にありますので、興味があれば、ぜひこちらをご参照ください。→ ハッシュ関数の詳細(ブロックチェーン技術及び関連技術)

完成するとこんな感じに動きます!
ハッシュ化ソフト.gif

環境

  • Windows 10 home
  • Python 3.7.1

ハッシュ関数(SHA256)によるハッシュ化ソフトの制作

インポート

使うライブラリは以下の2つです。
hashlibをインポートすることで、ハッシュ関数SHA256を使うことができるようになります。

import tkinter as tk
import hashlib as hash

ウィンドウの作成

import tkinter as tk

class Application(tk.Frame):
    def __init__(self,master):
        super().__init__(master)
        self.pack()

        master.geometry("480x200")
        master.title("ハッシュ関数(SHA256)によるハッシュ化ソフト")


def main():
    win = tk.Tk()
    app = Application(master = win)
    app.mainloop()


if __name__ == "__main__":

    main()

このプログラムでウィンドウを作っていきます。
サイズは480×200です。タイトル名はハッシュ関数(SHA256)によるハッシュ化ソフトです。
詳しくはPythonによるTkinterを使った雛形(クラス化手法)の記事をご参照ください。

完成したプログラム

こちらが完成したプログラムになります。

hash.py
import tkinter as tk
import hashlib as hash

class Application(tk.Frame):
    def __init__(self,master):
        super().__init__(master)
        self.pack()

        master.geometry("480x200")
        master.title("ハッシュ関数(SHA256)によるハッシュ化ソフト")

        self.setGUI()

    def setGUI(self):
        self.txt1 = tk.Entry(width=75)
        self.txt1.place(x=15,y=50)

        self.txt2 = tk.Entry(width=75)
        self.txt2.place(x=15,y=100)

        self.btn = tk.Button(text="ハッシュ化",command = self.btn_click,width=30)
        self.btn.place(x=125, y=150)

    def btn_click(self):
        if self.txt1.get() == "":
            self.txt2.delete(0, tk.END)
            self.txt2.insert(0,"")
        else:
            self.txt2.delete(0, tk.END)
            self.txt2.insert(0,hash.sha256(self.txt1.get().encode()).hexdigest())


def main():
    win = tk.Tk()
    app = Application(master = win)
    app.mainloop()


if __name__ == "__main__":
    main()

setGUI関数でテキストボックスやボタンを配置していきます。
btn_click関数でボタンを押した時の処理を行います。ここで、上部のテキストボックスの内容をハッシュ関数に入れ、そのハッシュ値を下部のテキストボックスで表示します。

以上でハッシュ関数(SHA256)によるハッシュ化ソフトは完成になります。
ここまで読んでいただき、ありがとうございました。

7
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
8