簡體   English   中英

驗證在 JavaCard 上簽名的數據時出現 Java BadPaddingException

[英]Java BadPaddingException when verifying data signed on a JavaCard

我正在使用密碼在 JavaCard 上簽署一些數據,然后將其輸出到文本文件中,將其讀入 java 程序並嘗試驗證它。 我不斷收到 BadPaddingException。

我在我的 JavaCard 小程序上這樣簽名:

Cipher cipher = Cipher.getInstance(Cipher.ALG_RSA_PKCS1, false);
cipher.init(key.getPrivate(), Cipher.MODE_ENCRYPT);
short sigCipherLength = cipher.doFinal(inputArray, inputOffset, inputLength, outputArray, outputOffset);

並像這樣驗證它(在我的 Java 程序上):

Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");
cipher.init(Cipher.DECRYPT_MODE, publicKey);
byte[] decryptedText = cipher.doFinal(inputArray);

當使用帶有“RSA”的 Cipher.getInstance 時,它默認為 RSA/ECB/RKPCS1Padding 不是嗎? 我被困在如何擺脫錯誤上。

編輯:為了清楚起見,更改加密和解密以簽名和驗證

也許這會有所幫助: javax.crypto.Cipher 為 RSA 使用了哪個填充 簡而言之,不要依賴默認值,最好完全限定密碼。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM