Как я могу преобразовать этот java-код в javascript

Мой код должен получить зашифрованный открытый текст с сервера и расшифровать его с помощью javascript. У меня есть функция дешифрования в java, но как преобразовать ее в javascript?

Я пробовал cryptojs безуспешно. Поскольку шифр IV сделал, но байтовый массив и javascript не имеют байтового типа данных

public static String decrypt(String plainText, String key) throws Exception {
    byte[] clean = new BASE64Decoder().decodeBuffer(plainText);

    int keySize = 16;
    byte[] keyBytes = new byte[keySize];

    byte[] pwbyte = key.getBytes("UTF-8");

    int len = pwbyte.length;

    if (len > keyBytes.length) {
        len = keyBytes.length;
    }

    System.arraycopy(pwbyte, 0, keyBytes, 0, len);
    SecretKeySpec secretKeySpec = new SecretKeySpec(keyBytes, "AES");

    IvParameterSpec ivParameterSpec = new IvParameterSpec(keyBytes);
    Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
    cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, ivParameterSpec);
    byte[] encrypted = cipher.doFinal(clean);

    return new String(encrypted, "UTF-8");
}

Вы можете попробовать библиотеку nacl. Проверьте это: tweetnacl.js.org. Также это может быть полезно в процессе (если вы решите использовать tweetNacl): stackoverflow.com/questions/51978889/…

Abrar 06.01.2019 08:40

Кажется, вы создаете IV при расшифровке. Вы должны передать IV, который использовался для шифрования, методу дешифрования. Это не отвечает на ваш вопрос, но вам нужно это исправить в вашем Java-коде.

Darlesson 26.02.2019 20:38
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
3
153
1

Ответы 1

Я столкнулся с проблемой несоответствия типов данных для байтового массива при переписывании драйвера Python на Node.js. В моем случае я использовал чирикать, который является портом библиотеки NACL в JS. Решил проблему здесь.

Надеюсь это поможет.

Другие вопросы по теме