はじめに
私の研究分野であるブロックチェーン技術において、ハッシュ関数はめっちゃ大事な技術の一つです。今回はそのハッシュ関数の一種であるSHA256を使って、簡単にハッシュ値を生成できるものを作っていきましょう!コマンドプロンプトに出すだけだと面白くないので、Tkinterを使ってGUIアプリを作成していきます。
ハッシュ関数の具体的な内容に関しては、ブロックチェーン技術及び関連技術の記事にありますので、興味があれば、ぜひこちらをご参照ください。→ ハッシュ関数の詳細(ブロックチェーン技術及び関連技術)
環境
- 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を使った雛形(クラス化手法)の記事をご参照ください。
完成したプログラム
こちらが完成したプログラムになります。
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)によるハッシュ化ソフトは完成になります。
ここまで読んでいただき、ありがとうございました。