欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 房产 > 建筑 > Signature

Signature

2025/2/3 1:47:51 来源:https://blog.csdn.net/2402_87431173/article/details/145416331  浏览:    关键词:Signature

打开得到加密脚本:

import ecdsa
import randomdef ecdsa_test(dA,k):sk = ecdsa.SigningKey.from_secret_exponent(secexp=dA,curve=ecdsa.SECP256k1)sig1 = sk.sign(data=b'Hi.', k=k).hex()sig2 = sk.sign(data=b'hello.', k=k).hex()r1 = int(sig1[:64], 16)s1 = int(sig1[64:], 16)s2 = int(sig2[64:], 16)return r1,s1,s2if __name__ == '__main__':n = 0xfffffffffffffffffffffffffffffffebaaedce6af48a03bbfd25e8cd0364141a = random.randint(0,n)flag = 'flag{' + str(a) + "}"b = random.randint(0,n)print(ecdsa_test(a,b))# (4690192503304946823926998585663150874421527890534303129755098666293734606680, 111157363347893999914897601390136910031659525525419989250638426589503279490788, 74486305819584508240056247318325239805160339288252987178597122489325719901254)

解密脚本:

import ecdsa
import randomdef ecdsa_verify(dA, sig_r, sig_s, msg, k):# 从私钥 dA 和签名 r, s 验证消息sk = ecdsa.SigningKey.from_secret_exponent(secexp=dA,curve=ecdsa.SECP256k1)try:# 使用生成的签名验证消息valid = sk.verify((sig_r, sig_s), msg.encode())return validexcept ecdsa.keys.BadSignatureError:return Falsedef ecdsa_test(dA, k):sk = ecdsa.SigningKey.from_secret_exponent(secexp=dA,curve=ecdsa.SECP256k1)sig1 = sk.sign(data=b'Hi.', k=k)sig2 = sk.sign(data=b'hello.', k=k)r1 = int(sig1[:32], 16)s1 = int(sig1[32:], 16)r2 = int(sig2[:32], 16)s2 = int(sig2[32:], 16)return r1, s1, r2, s2if __name__ == '__main__':# 这个是用于模拟的私钥,实际情况中需要提供dA = 1234567890 # 私钥dAk = random.randint(0, 2**256)msg = 'Hi.'r1, s1, r2, s2 = ecdsa_test(dA, k)print(f"Signature for msg 'Hi.': r={r1}, s={s1}")# 验证签名is_valid = ecdsa_verify(dA, r1, s1, msg, k)print(f"Signature valid: {is_valid}")

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com