我正在尝试创建一个使用javax.crypto.Cipher
API 检查数字签名的程序。
只要 RSA 密钥正确配对,我的程序就可以正常工作。但是,当我有一个不正确的密钥试图解密消息时,我得到了一个异常:
BadPaddingException: Data must start with zero
打电话给
byte[] signature = cipher.doFinal();
我希望能够在调用之前检查密钥是否有效doFinal
,或者如果失败,则优雅地退出。我已经将它包装doFinal
在一个 try/catch 块中,以尝试关闭我的 UDP 套接字,但这不起作用。
如果有人能指出我正确的方向,我将不胜感激。