Расшифровать AES 256 CBC Javascript

0

Я - разработчик углового интерфейса для начинающих, и теперь мне нужно получить доступ к Java REST api другой команды разработчиков.

Чтобы получить api http://apps.api.com/api/user/login, мне нужно отправить этот запрос с заголовками: Authorization: Bearer b517241b-e81d-430e-afb6-773527989b47 и Content-Type: application/json,

Чтобы получить токен b517241b-e81d-430e-afb6-773527989b47, я должен запросить еще один api http://apps.api.com/api/auth/token, тогда результат, который я получаю от этого api, - это что-то вроде:

{ "token": "eyJhbGciOiJIUzI1NiJ9.eyJleHAiOjE0NTQwMzI5MDk2NzYsInN1YiI6InRva2VuIiwidG9rZW4iOiIrbjZEd1NDUGVMbXd0SGpCT2ZzZUhVRlwvS2NOMzBBTDRkXC9sWDlSVlI1UWxnXC9wV2M1VVNNREpCVDVSUnNWNHpadUFtNExWc3BIeDl1SmtESGhvZTI0dWhMcUNzeUFmZklYMTBkalVqVzFnOSt5QTN4eEg4TElQbzBoTDR5V0JhNnplWm9lVFcrZFE0dzd3MVhCazhLZFZwWGFmRmJMZ3RoXC9OdVE5REM1c3QxTllnSDB2aHRWZ0lha3VnZVlhOEFPU1c3eWVsOWFHcXhJN1hHM1FrbVwvYUE9PSIsImlzcyI6Imh0dHBzOlwvXC93d3cud2luZ21vbmV5LmNvbSJ9.uBQYvfTwadTG2QZ76tQN6-ETT1M8X72ltDe7xBCvEhA" }

Мне нужно сделать это, декодировать этот токен, используя jwt, затем расшифровать его с помощью AES 256 CBC (я застрял здесь).

Я получил код дешифрования от базового разработчика и код в java:

private static final String AES_KEY = "HG47YZ3CR8";
public static String decrypt(String orignalText) throws ApplicationException {

    try {
        final MessageDigest md = MessageDigest.getInstance("SHA-256");
        final byte[] digestOfPassword = md.digest(AES_KEY.getBytes("utf-8"));
        final SecretKey key = new SecretKeySpec(digestOfPassword, "AES");

        final Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");

        cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(new byte[16]));
        final byte[] plainTextBytes = Base64.decodeBase64(orignalText);
        final byte[] encodeTextBytes = cipher.doFinal(plainTextBytes);

        return new String(encodeTextBytes);

    } catch (NoSuchAlgorithmException |
            UnsupportedEncodingException |
            IllegalBlockSizeException |
            InvalidKeyException |
            BadPaddingException |
            NoSuchPaddingException | InvalidAlgorithmParameterException e) {
        throw new ApplicationException(ErrorCode.GENERAL_FAIL, e);
    }
}

Я пытался найти javascript-библиотеку, чтобы написать расшифровку, такую же, как этот Java-код, но я не смог найти правильный.

Я ценю, есть ли у кого-нибудь представление о том, какая библиотека javascript похожа на этот java-код.

Теги:
encryption

1 ответ

0

Я не уверен, что я действительно рекомендую использовать ваш интерфейс для дешифрования всего, поскольку для этого потребуется, чтобы ваш ключ находился в библиотеке javascript, которая по существу позволяла бы EVERYONE расшифровывать ваш токен. Который будет выпрашивать вопрос, почему вы шифруете для начала. Но если вам действительно нужно это сделать в javascript, вы можете проверить ответы SO здесь.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню