Длина зашифрованной строки

Привет, у меня возникла проблема с крипто-строкой для получения PDF-файла пользователя. Это показывает ошибку, которая ниже:

javax.crypto.IllegalBlockSizeException: входная длина должна быть кратна 8 при дешифровании с добавленным шифром

код есть:

public void getPDF(WebRequest request, ResourceResponse response, Model model,
                   @RequestParam("cif") String cif, 
                   @RequestParam("cuenta") String cuenta, 
                   @RequestParam("objectId") String encryptedObjectId) throws Exception{

    log.info("Inicio metodo getPDF");

    OutputStream os = response.getPortletOutputStream();


     try {

        CipherHelper cipher = new CipherHelper(CipherHelper.TRIPLE_DES_ALGORITHM, InterfazConstantes.ENCRYPTION_KEY, InterfazConstantes.ENCRYPTION_SHIFT);
        String objectId = cipher.decrypt(encryptedObjectId, true);

public String getEncryptedObjectID() {
    try {
        CipherHelper cipher = new CipherHelper(CipherHelper.TRIPLE_DES_ALGORITHM, InterfazConstantes.ENCRYPTION_KEY, InterfazConstantes.ENCRYPTION_SHIFT);
        encryptedObjectID = cipher.encrypt(objectID, true);
    } catch (Exception e) {
    }

    return encryptedObjectID;
}

** Я установил, что идентификатор encryptedObject имеет длину 40, но это не решает проблему.

След ошибки:

javax.crypto.IllegalBlockSizeException: Input length must be multiple of 8 when decrypting with padded cipher
    at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..) ~[sunjce_provider.jar:1.6]
    at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..) ~[sunjce_provider.jar:1.6]

Кто-нибудь может мне помочь?

Спасибо

1 ответ

Проблема, скорее всего, связана с использованием String для двоичных данных (зашифрованный текст = byte[]). И затем, используя кодировку по умолчанию.

String s = new String(bytes, StandardCharsets.ISO_8859_1);// Single byte encoding
byte[] bytes = s.getBytes(StandardCharsets.ISO_8859_1);
new OutputStreamWriter(outputStream, StandardCharsets.ISO_8859_1)
new InputStreamReader(inputStream, StandardCharsets.ISO_8859_1)
Другие вопросы по тегам