区块链数学基础之的哈希算法python实验

在区块链中使用了很多加密学算法,包括哈希算法、默克树、数字签名等。

(一)  哈希算法

哈希算法是一种常见的单向加密算法,它将一串数据加密生成一串二进制,但不能由二进制还原为原来的数据。该算法有一下特点:

·        相同的输入得到相同的二进制串

·        不同对输入得到不同的二进制串,即有强对抗性,不同的数据不会产生相同的哈希值

·        输出的二进制长度是一致的

Python演示代码:

import hashlib
data1 = "Test1"
msg = hashlib.sha256()
msg.update(data1.encode("utf-8"))
output1 = msg.hexdigest()
print("Data1 first hash:"+output1)
 
# 再次计算
msg = hashlib.sha256()
msg.update(data1.encode("utf-8"))
output2 = msg.hexdigest()
print("Data1 second hash:"+output1)
if (output1 == output2):
                    print("Data1 first hash equals Data1 second hash!")
 
# 使用不同的数据
data2 = "Test2"
msg = hashlib.sha256()
msg.update(data2.encode("utf-8"))
output3 = msg.hexdigest()
print("Data2 first hash:"+output3)
if (output1 == output3):
                    print("Data1 hash equals Data2  hash!")
else:
                    print("Data1 hash does not equal Data2  hash!")
演示结果:
Data1 first hash:8a863b145dc6e4ed7ac41c08f7536c476ebac7509e028ed2b49f8bd5a3562b9f
Data1 second hash:8a863b145dc6e4ed7ac41c08f7536c476ebac7509e028ed2b49f8bd5a3562b9f
Data1 first hash equals Data1 second hash!
Data2 first hash:32e6e1e134f9cc8f14b05925667c118d19244aebce442d6fecd2ac38cdc97649
Data1 hash does not equal Data2  hash!

 

 

 

    原文作者:哈希算法
    原文地址: https://blog.csdn.net/u012885320/article/details/79573486
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞