Я кодирую алгоритм RSA для шифрования строки для отправки в веб-службу VisualBasic. К сожалению, VB RSAcryptoserviceprovider всегда дает мне исключение «Плохие данные», и это проблема в кодировке. Код VisualBasic получает строку и преобразует ее в массив байтов, используя кодировку Windows-1252, и их расшифровывает.Неверные символы Java Windows-1252
В моем Java коде, я шифрование с помощью этого:
private static String encryptBlock(Cipher cipher, String textToEncrypt) {
cipher.init(Cipher.ENCRYPT_MODE, pubKey);
String encrypted = new String(cipher.doFinal(textToEncrypt.getBytes(Charset.defaultCharset())), "windows-1252");
return encrypted;
}
Когда я «System.out.print» зашифрованной строки она дает мне странные символам нравятся. Означает ли это, что кодировка windows-1252 неверна? Что я здесь делаю неправильно? Обратите внимание, что я могу вносить изменения только в код Java, а не в VB.
Спасибо!
Я не верю, что Windows-1252 содержит символ , вероятно, он кодируется в UTF-8 или UTF-16. – JonK
«новая строка (cipher.doFinal (textToEncrypt.getBytes (Charset.defaultCharset())),« windows-1252 »); если я напечатаю это, он даст мне некоторые символы – DiogoPinheiro
. Задайте другой набор символов и посмотрите, изменяется ли выход. – JonK