python与区块链——默克尔树有叶4个,自己定义叶子存放的数据,请计算默克尔树根的值。

今天老师给了我们这样一道题

“默克尔树有叶4个,自己定义叶子存放的数据,请计算默克尔树根的值。”

python与区块链——默克尔树有叶4个,自己定义叶子存放的数据,请计算默克尔树根的值。

总的来说,还是得用tkinter

懒得自己搞死自己,决定”输入四个值”,直接一键输出后面所有的

python与区块链——默克尔树有叶4个,自己定义叶子存放的数据,请计算默克尔树根的值。

python与区块链——默克尔树有叶4个,自己定义叶子存放的数据,请计算默克尔树根的值。

python与区块链——默克尔树有叶4个,自己定义叶子存放的数据,请计算默克尔树根的值。

python与区块链——默克尔树有叶4个,自己定义叶子存放的数据,请计算默克尔树根的值。

python与区块链——默克尔树有叶4个,自己定义叶子存放的数据,请计算默克尔树根的值。

python与区块链——默克尔树有叶4个,自己定义叶子存放的数据,请计算默克尔树根的值。

对我这样的初学者来说,代码比较长,但分段做的话也不复杂,逻辑清晰就可以了。

下面是代码:

import tkinter
import hashlib

def mgbox1():
    y1 = b1.get()
    x1 = y1.encode()
    hash_1 = hashlib.sha256(x1)
    c1=hash_1.hexdigest()
    listboxHash1.insert(0,c1)

    y2 = b2.get()
    x2 = y2.encode()
    hash_2 = hashlib.sha256(x2)
    c2 = hash_2.hexdigest()
    listboxHash2.insert(0,c2)

    y3 = b3.get()
    x3 = y3.encode()
    hash_3 = hashlib.sha256(x3)
    c3 = hash_3.hexdigest()
    listboxHash3.insert(0,c3)

    y4 = b4.get()
    x4 = y4.encode()
    hash_4 = hashlib.sha256(x4)
    c4 = hash_4.hexdigest()
    listboxHash4.insert(0,c4)

    c12 = c1+c2
    h12 = c12.encode()
    hash_12 = hashlib.sha256(h12)
    w12=hash_12.hexdigest()
    listboxHash5.insert(0,w12)

    c34 = c3+c4
    h34 = c34.encode()
    hash_34 = hashlib.sha256(h34)
    w34 = hash_34.hexdigest()
    listboxHash6.insert(0, w34)

    c1234 = w12+w34
    u1234 = c1234.encode()
    hash_1234 = hashlib.sha256(u1234)
    w1234 = hash_1234.hexdigest()
    listboxHash7.insert(0, w1234)

win1 = tkinter.Tk()
win1.title("哈希值生成器")
win1.geometry("700x400")

labelName1=tkinter.Label(win1,text='输入的值Tx1:',justify=tkinter.RIGHT,
                        anchor='e',width=80)
labelName1.place(x=20,y=5,width=80,height=20)

b1=tkinter.StringVar()
entryZhi1=tkinter.Entry(win1, width=20,textvariable=b1)
entryZhi1.place(x=100,y=5,width=300,height=20)

labelName2=tkinter.Label(win1,text='输入的值Tx2:',justify=tkinter.RIGHT,
                        anchor='e',width=80)
labelName2.place(x=20,y=30,width=80,height=20)

b2=tkinter.StringVar()
entryZhi2=tkinter.Entry(win1, width=20,textvariable=b2)
entryZhi2.place(x=100,y=30,width=300,height=20)

labelName3=tkinter.Label(win1,text='输入的值Tx3:',justify=tkinter.RIGHT,
                        anchor='e',width=80)
labelName3.place(x=20,y=55,width=80,height=20)

b3=tkinter.StringVar()
entryZhi3=tkinter.Entry(win1, width=20,textvariable=b3)
entryZhi3.place(x=100,y=55,width=300,height=20)

labelName4=tkinter.Label(win1,text='输入的值Tx4:',justify=tkinter.RIGHT,
                        anchor='e',width=80)
labelName4.place(x=20,y=80,width=80,height=20)

b4=tkinter.StringVar()
entryZhi4=tkinter.Entry(win1, width=20,textvariable=b4)
entryZhi4.place(x=100,y=80,width=300,height=20)

entryShuchu=tkinter.Button(win1,width=20,text="输出哈希值",command=mgbox1)
entryShuchu.place(x=20,y=105,width=80,height=20)

labelName5=tkinter.Label(win1,text='输出的哈希值H1:',justify=tkinter.RIGHT,
                        anchor='e',width=100)
labelName5.place(x=20,y=130,width=100,height=20)

labelName6=tkinter.Label(win1,text='输出的哈希值H2:',justify=tkinter.RIGHT,
                        anchor='e',width=100)
labelName6.place(x=20,y=155,width=100,height=20)

labelName7=tkinter.Label(win1,text='输出的哈希值H3:',justify=tkinter.RIGHT,
                        anchor='e',width=100)
labelName7.place(x=20,y=180,width=100,height=20)

labelName8=tkinter.Label(win1,text='输出的哈希值H4:',justify=tkinter.RIGHT,
                        anchor='e',width=100)
labelName8.place(x=20,y=205,width=100,height=20)

labelName9=tkinter.Label(win1,text='输出的哈希值H12:',justify=tkinter.RIGHT,
                        anchor='e',width=100)
labelName9.place(x=20,y=230,width=100,height=20)

labelName9=tkinter.Label(win1,text='输出的哈希值H34:',justify=tkinter.RIGHT,
                        anchor='e',width=100)
labelName9.place(x=20,y=255,width=100,height=20)

labelName10=tkinter.Label(win1,text='默克尔根H1234:',justify=tkinter.RIGHT,
                        anchor='e',width=100)
labelName10.place(x=20,y=280,width=100,height=20)

listboxHash1=tkinter.Listbox(win1,width=80)
listboxHash1.place(x=120,y=130,width=550,height=20)

listboxHash2=tkinter.Listbox(win1,width=80)
listboxHash2.place(x=120,y=155,width=550,height=20)

listboxHash3=tkinter.Listbox(win1,width=80)
listboxHash3.place(x=120,y=180,width=550,height=20)

listboxHash4=tkinter.Listbox(win1,width=80)
listboxHash4.place(x=120,y=205,width=550,height=20)

listboxHash5=tkinter.Listbox(win1,width=80)
listboxHash5.place(x=120,y=230,width=550,height=20)

listboxHash6=tkinter.Listbox(win1,width=80)
listboxHash6.place(x=120,y=255,width=550,height=20)

listboxHash7=tkinter.Listbox(win1,width=80)
listboxHash7.place(x=120,y=280,width=550,height=20)

win1.mainloop()

Original: https://blog.csdn.net/LZC19980621/article/details/127743791
Author: 学编程的驰驰
Title: python与区块链——默克尔树有叶4个,自己定义叶子存放的数据,请计算默克尔树根的值。

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/784573/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • rate-limit 一款 java 开源渐进式分布式限流框架使用介绍

    项目简介 rate-limit 是一个为 java 设计的渐进式限流工具。 目的是为了深入学习和使用限流,后续将会持续迭代。 特性 渐进式实现 支持独立于 spring 使用 支持…

    Python 2023年10月12日
    050
  • conda,jupyter lab 以及对应插件 的安装和配置

    Jupyter环境安装和配置 * – 1.conda 安装 – 2.创建虚拟环境 – 3.jupyter lab 配置 – 3.ju…

    Python 2023年9月9日
    040
  • Django概述(第三章)模型

    一. 定义与使用模型这是大概的步骤:1.一般是和mysql数据库连接,所以需要注意:在项目中的settings.py文件中配置参数如下:连接数据库 DATABASES = { ‘d…

    Python 2023年8月4日
    051
  • 2021/6/7

    s## Python 从入门到实践 游戏实现(详解)第一次完整的做完一个游戏(深感Python的强大)(尽管积分系统没做全,之所以停下来,是想好好消化一下pygame的内容,自我感…

    Python 2023年9月25日
    039
  • window系统中 mongodb创建用户名和密码

    use admindb.createUser({user:”root”,pwd:”root”,roles:[{“role…

    Python 2023年6月16日
    080
  • django笔记第七节

    1打开myapp/urls.py文件,将其修改成下面的样子:每个类视图都有一个as_view()方法,用于在urlconf(也就是上图中的urlpatterns)中使用。这个方法会…

    Python 2023年8月4日
    050
  • pygame库pgu使用介绍

    现在用pygame制作小游戏的人越来越多,但是pygame它是没有弹窗机制的一般解决这个问题我们会使用tkinter库或者pgu库两种方式其中pgu库还没有很适合新手的一个手册介绍…

    Python 2023年9月19日
    034
  • Pytest.fixture

    一、Pytest前置setup后置teardown在用例中的运行级别 1. 模块级 setup_module/teardown_module 这是全局的,在模块始末 def set…

    Python 2023年9月12日
    057
  • 华为组播配置实验,PIM-DM组播配置实验

    一、配置VLAN,并将端口加入VLAN LSW5: system vlan batch 10 to 100 int g 0/0/1 port link-type trunk por…

    Python 2023年6月10日
    084
  • Scrapy入门第一课

    1.Scrapy的介绍 Scrapy是一个基于Twisted的多功能爬虫框架,是Python中最流行的爬虫框架,结构清晰,思路明确,功能齐全,简单易懂。整个框架由五部分组成,分别是…

    Python 2023年10月7日
    035
  • pandas核心数据结构Series/DataFrame/Panel

    Series Series是一维带标签的数组,数组里可以放任意的数据(整数、浮点数、字符串、python对象)。创建函数 s = pd.Series(data, index = i…

    Python 2023年8月7日
    053
  • 《精通Python爬虫框架Scrapy》第11章 使用Scrapyd与实时分析进行分布式爬取

    我们已经走了很长的一段路。我们首先熟悉了两种基础的网络技术——HTML和XPath,然后开始使用Scrapy爬取复杂网站。接下来,我们深入了解了Scrapy通过其设置为我们提供的诸…

    Python 2023年10月5日
    038
  • 两万字盘点被玩烂了的9种设计模式

    大家好,我是三友~~ 之前有小伙伴私信我说看源码的时候感觉源码很难,不知道该怎么看,其实这有部分原因是因为没有弄懂一些源码实现的套路,也就是设计模式,所以本文我就总结了9种在源码中…

    Python 2023年10月15日
    047
  • python中pandas的用法_python中如何使用pandas实现行数据添加

    python中,pandas是一个数据分析包,可以对数据进行很方便的处理提供了高效地操作大型数据集所需的工具。pandas有一个数据结构是DataFrame,DataFrame提供…

    Python 2023年8月21日
    044
  • Python第四天–流程控制

    在编程的世界中,流程控制是程序员运行的基础,流程控制决定了程序按照什么样的方式去执行,本节给大家介绍 Python 流程控制相关语法。if 语句if 语句表示如何发生什么样的条件,…

    Python 2023年5月24日
    064
  • 使用Python+Flask+OpenCV构建一个相机应用程序

    在这篇博文中,我们将使用 Flask 框架构建一个相机应用程序,我们可以在其中单击图片、录制视频、应用诸如灰度、负片和”仅人脸”之类的滤镜,就像出现在 Sn…

    Python 2023年8月12日
    095
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球