RSA 암호화 후 16 진수 문자열이 있습니다. 내가 바이트 []로 변환 할 때, RSA 암호 해독 javax.crypto.BadPaddingException을 제공합니다 Blocktype 불일치 : 나는 변환이 방법을 사용하고 0RSA 암호 해독을 위해 16 진수 문자열을 바이트 배열로 변환
을
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;
}
(스택 오버 플로우 자체에있어) 어떤 제안을하시기 바랍니다.
전환이 좋아 보인다 : 당신은
for
루프에서 2i
를 증가하고 데이터를 액세스 할 때[i]
및[i+1]
를 사용하는 것이 더 낫다. 나는 네 실수가 어딘가에 있다고 생각해. (그런데, "Stack Overflow 자체에서 얻었습니다"대신 적절한 질문/답변에 링크하는 것이 적절한 방법입니다.) –코드의 관련 암호 해독 섹션을 게시 할 수 있습니까? 아마도 당신은이 루틴 대신에'String.getBytes()'를 사용하고 있습니까? – maerics