使用数字签名来验证交易的完整性和身份。在交易时,每个参与者都会使用自己的私钥对交易信息进行数字签名,然后发送给其他参与者。其他参与者可以使用该参与者的公钥验证数字签名是否有效。如果数字签名有效,则可以确认该参与者未对交易进行更改。以下是一个Python中使用pycryptodome模块实现数字签名的示例:
from Crypto.PublicKey import RSA
from Crypto.Signature import pkcs1_15
from Crypto.Hash import SHA256
# 生成RSA密钥对
key = RSA.generate(2048)
# 定义交易信息
data = "{'payer': 'Alice', 'payee': 'Bob', 'amount': '10'}"
# 计算交易信息的散列值
hash = SHA256.new(data.encode('utf-8'))
# 使用私钥进行数字签名
signature = pkcs1_15.new(key).sign(hash)
# 将交易信息和数字签名发送给其他参与者
# 其他参与者验证数字签名
public_key = key.publickey()
try:
pkcs1_15.new(public_key).verify(hash, signature)
print("交易有效")
except (ValueError, TypeError):
print("交易无效")
上一篇:保护登录php脚本