微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 JavaCard 验证 RSA 签名时出现 Java SignatureException

如何解决从 JavaCard 验证 RSA 签名时出现 Java SignatureException

我在验证签名时遇到异常 SignatureException: Signature length not correct: got 64 but was expecting 66

我在 JavaCard 上签署了数据:

Signature signature = Signature.getInstance(Signature.ALG_RSA_MD5_PKCS1,false);
KeyPair key = new KeyPair(KeyPair.ALG_RSA,(short)512);
key.genKeyPair();
signature.init(key.getPrivate(),Signature.MODE_SIGN);
signature.sign(dataToBeSigned,offsetofData,lengthOfData,outputArray,outputoffset);

当我尝试在单独的 Java 程序中验证签名时出现异常

Signature signature = Signature.getInstance("MD5withRSA");
signature.initVerify(publicKey);
signature.update(dataToBeVerified);
boolean verified = signature.verify(signaturetoBeVerified);

似乎 signature.verify() 需要长度为 66 的签名,但在 JavaCard 小程序生成的签名只有 64 个字节长 - 我不知道为什么会这样。

对于生成的签名为什么太短或为什么 signature.verify() 期望更长的签名的任何帮助将不胜感激。

编辑以添加额外信息:

bigIntExp:65537 bigIntMod:13230841954664737412824029267753080731554269114798203913581827904381​​7855879255964354323446465801763768751278796804645533108455181966328171561226049067030642228779581871262216901734159959403381829035369468203140058451522951118452394154357893479460331007989274416039890367651223156420250223950749870305488385775751757831611317020777731747216787964833937998955451058221004606237913446120467690829592472183785281175197045866416933142014254513781922812566056256864142790656

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。