我使用RSA library使用公钥检查数字签名,如下所示:
rsa.verify(message, sig, key)
该功能按预期工作,但是对于不正确的情况,库打印出来
rsa.pkcs1.VerificationError: Verification failed
我想查看实际的计算值,以便我可以将其与预期值进行比较。有没有办法打印出来而不调整库的内部?
答案 0 :(得分:1)
使用verify()
方法作为模板:
from rsa import common, core, transform
keylength = common.byte_size(base)
decrypted = core.decrypt_int(sig, exp, base)
clearsig = transform.int2bytes(decrypted, keylength)
假设您的签名为sig
,公钥的模数和exp分别为base
和exp
。
最后要注意的是,您的哈希可能在开头包含填充。当我使用SHA-256时,我不得不查看clearsig
的最后32个字节。