Как я могу преобразовать этот код Java в JavaScript - PullRequest
0 голосов
/ 06 января 2019

Мой код должен получить зашифрованный открытый текст с сервера и расшифровать его в соответствии с 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");
}

1 Ответ

0 голосов
/ 06 января 2019

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

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

...