每天进步一点点-python如何进行签名及验签2【chatgpt写的】
from Crypto.Signature import pkcs1_15
from Crypto.Hash import SHA256
from Crypto.PublicKey import RSA
def sign_data(data, private_key_path):
with open(private_key_path, "r") as f:
private_key = RSA.import_key(f.read())
hash = SHA256.new(data.encode())
signature = pkcs1_15.new(private_key).sign(hash)
return signature
def verify_signature(data, signature, public_key_path):
with open(public_key_path, "r") as f:
public_key = RSA.import_key(f.read())
hash = SHA256.new(data.encode())
try:
pkcs1_15.new(public_key).verify(hash, signature)
return True
except (ValueError, TypeError):
return False
为了验证数据的完整性,我们需要对数据进行签名,然后在接收方对签名进行验证。签名是使用私钥生成的,而验证是使用公钥进行的。在Python中,我们可以使用pycryptodome库来实现签名和验证。下面是一个示例代码,它使用SHA-256哈希算法对数据进行签名和验证。
data参数是要签名的数据,它应该是一个字符串类型。例如,如果您要签名的数据是"Hello, world!",则可以将其传递给sign_data函数,如下所示
signature = sign_data("Hello, world!", "path/to/private_key.pem")
人生苦短,我用python!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具