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

xiaoxiao2021-02-28  50

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

(一)  哈希算法

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

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

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

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

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://www.6miu.com/read-2624487.html

最新回复(0)