Корейские письма не доставляются и не печатаются сразу после расшифровки и декодирования. (COMM между javascript <> javaJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Корейские письма не доставляются и не печатаются сразу после расшифровки и декодирования. (COMM между javascript <> java

Сообщение Anonymous »

Я пытаюсь отправить зашифрованные данные.
Я использую AES-128 CBC.
Данные хорошо шифруются и прекрасно расшифровываются. на стороне javascript.
Однако, когда данные передаются в Javacode, зашифрованные данные доставляются нормально, но как только они расшифровываются и декодируются, только корейские буквы кажутся сломанными, хотя английские буквы и цифры отображаются нормально.
Коды приведены ниже.
Первый — это код JS, который отправляет данные. Функция дешифрования предназначена для проверки правильности расшифровки.

Код: Выделить всё

        function encrypt(text, key, iv) {
const encodedText = text
const cipher = crypto.createCipheriv('aes-128-cbc', key, iv);
let encrypted = cipher.update(encodedText, 'utf8', 'base64');
encrypted += cipher.final('base64');
return encrypted;
}

function decrypt(encrypted, key, iv) {
const decipher = crypto.createDecipheriv('aes-128-cbc', key, iv);
let decrypted = decipher.update(encrypted, 'base64', 'utf8');
decrypted += decipher.final('utf8');
return decrypted;
}
Второй — это JAVA-код, который получает данные и расшифровывает их.

Код: Выделить всё

    public String aesDecode(String str) throws Exception {
System.out.println("INPUT : "+str);

Cipher c = Cipher.getInstance("AES/CBC/PKCS5Padding");
c.init(Cipher.DECRYPT_MODE, this.keySpec, new IvParameterSpec(this.iv.getBytes(StandardCharsets.UTF_8)));
byte[] decrypted = c.doFinal(Base64.getDecoder().decode(str));
return new String(decrypted, "euc-kr");
}
}
Когда я отправляю такие данные, как «ENG한글123»
то они выглядят как «ENG�8羲123»
Единственная часть корейского письма демонстрирует некоторую проблему.
Будем благодарны за любую помощь или предложения. Я пробую все, но пока не понимаю.
Я пытался сначала закодировать данные перед отправкой, но возникла проблема с заполнением, поэтому я не мог отправлять письма длиннее, чем 15 случаев.
затем я попытался сначала закодировать, а затем пустой параметр из cipher.final()
но затем размер байта был неправильным поэтому он вернул ошибку.

Подробнее здесь: https://stackoverflow.com/questions/785 ... -decrypted
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «JAVA»