mardi 14 juin 2016

Decryptography exception java.lang.ArrayIndexOutOfBoundsException

I have a code to encrypt and decrypt keys, and is working fine, but at some part of the code this code encrypt a DateTime.now(); and i can't decrypt that . i cant decrypt this TbwgUFx5z+BOmcZQhO8dBMz30eJp5Q+ZKor2Z7QxFaY=, but this eGlhV2xNbmdqSFBkbEhkZDNpZ3gwQT09 the code decrypt fine I'm using Java Aes and BuncyCastle Library

 try {
    // --- check if AES-256 is available
    if (Cipher.getMaxAllowedKeyLength(AES_CBC_PKCS5PADDING) < KEY_SIZE) {
        throw new IllegalStateException("Unlimited crypto files not present in this JRE");
    }

    // --- create cipher
    final Cipher cipher = Cipher.getInstance(AES_CBC_PKCS5PADDING);

    // --- create the key and initial vector bytes
    final byte[] passwordEncoded = password.getBytes(UTF_8);;
    final byte[] ivBytes = "brasilshopsoft07".getBytes(UTF_8);

    // --- init cipher
    cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(passwordEncoded, "AES"),
            new IvParameterSpec(ivBytes));


    // --- decode & decrypt authentication string
    final byte[] authBytes = Base64.decode(authString);
    final byte[] authBytes2 = Base64.decode(new String(authBytes));
    final byte[] decryptedData = cipher.doFinal(authBytes2);

    // WARNING: may still decrypt to wrong string if
    // authString or password are incorrect -
    // BadPaddingException may not be thrown
    return new String(decryptedData, UTF_8);
} catch (BadPaddingException | IllegalBlockSizeException e) {
    // failure to authenticate
    return null;
} catch (final GeneralSecurityException e) {
    throw new IllegalStateException(
            "Algorithms or unlimited crypto files not available", e);
}

Aucun commentaire:

Enregistrer un commentaire