【发布时间】:2011-10-14 03:21:13
【问题描述】:
RSA 加密后我有一个十六进制字符串。当我将其转换为字节 [] 时,RSA 解密给出 javax.crypto.BadPaddingException: Blocktype mismatch: 0
我正在使用这种方法进行转换(在堆栈溢出本身上得到它)
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;
}
请给点建议。
【问题讨论】:
-
您的转化看起来不错。我想你的错误在其他地方。 (顺便说一句,正确的方法是链接到相关的问题/答案,而不是“在 Stack Overflow 上获得它”。)
-
能否贴出相关解密部分的代码?也许您在某处使用
String.getBytes()而不是这个例程?
标签: java type-conversion rsa encryption hexdump