Javascript Crypto AES расшифровывает - PullRequest
0 голосов
/ 31 мая 2018

Это криптографический код шифрования AES на стороне сервера.Как я могу decrypt in javascript.Я не могу найти никакой логики дешифрования, в которой есть и iv, и клавиша с отступом.

public static String encrypt(String key, String initVector, String value) {
        try {
            IvParameterSpec iv = new IvParameterSpec("l353b3l3jk3bk3j3".getBytes("UTF-8"));
            SecretKeySpec skeySpec = new SecretKeySpec("2353c3l3jk3bk3j8".getBytes("UTF-8"), "AES");

            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5PADDING");
            cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);

            byte[] encrypted = cipher.doFinal(value.getBytes());
            System.out.println("encrypted string: " + Base64.encodeBase64String(encrypted));

            return Base64.encodeBase64String(encrypted);
        } catch (Exception ex) {
            ex.printStackTrace();
        }

        return null;
    }

1 Ответ

0 голосов
/ 31 мая 2018

Вы можете использовать CryptoJS следующим образом:

var decryptedData = CryptoJS.AES.decrypt(cipherText, CryptoJS.enc.Base64.parse(key), 
{
    mode: CryptoJS.mode.ECB,
    padding: CryptoJS.pad.Pkcs7 //default
});
console.log('Decrypted Data: ' + decrypted);

PKCS5 не поддерживается этой библиотекой, но вы не должны использовать ее, так как она была разработана для DES, а не AES,Однако, если вы не хотите изменять его, вы все равно можете использовать PKCS7 для расшифровки, и это сработает, потому что разница заключается в размере блока, который поддерживает оба дополнения.PKCS5 работает только с 8-байтовыми блоками, тогда как PKCS7 работает с размерами блоков между 1 и 255 байтами.DES использует размер блока 8 байтов.

...