RSA加密後我有一個十六進制字符串。當我將其轉換爲一個byte [],RSA的解密給javax.crypto.BadPaddingException:Blocktype不匹配:0將十六進制字符串轉換爲字節數組用於RSA解密
我使用轉換這種方法(有它的堆棧溢出本身)
public static byte[] hexStringToByteArray(String data) {
int k = 0;
byte[] results = new byte[data.length()/2];
for (int i = 0; i < data.length();) {
results[k] = (byte) (Character.digit(data.charAt(i++), 16) << 4);
results[k] += (byte) (Character.digit(data.charAt(i++), 16));
k++;
}
return results;
}
任何建議請。
您的轉換看起來不錯。我想你的錯誤是在別的地方。 (順便說一下,不是「通過堆棧溢出本身獲取它」,正確的方法是鏈接到相關的問題/答案。) –
您能否發佈代碼的相關解密部分?也許你在某處使用'String.getBytes()'而不是這個例程? – maerics