Ho due diverse librerie crittografiche che ho creato, una è in java e utilizza le librerie di crittografia java incorporate standard.
L'altro utilizza openssl ed è stato inserito in java tramite JNI.
Attualmente sto sostituendo il codice predefinito della libreria java con il codice della libreria openssl e verificando le crittografie l'una contro l'altra per assicurarmi che non si interrompa nulla per il mio utente finale. Sono curioso, perché java è garantito per supportare solo 128 bit chiavi usando la sua implementazione di PBKDF2, quindi sto usando AES CBC 128 con java. Originariamente avevo codificato per AES CBC 256 in openssl, senza pensare.
Ciò di cui sono curioso è questo: quando inserisco una chiave da 256 bit in AES CBC 128 di java, ho ottenuto la stessa uscita di AES CBC 256 di openssl. Quando inserisco una chiave a 128 bit in AES CBC 128 , Ho ottenuto un output diverso rispetto a quando ho inserito la stessa chiave in AES CBC 256 di openssl. (Ho usato lo stesso IV di 16 byte in tutte le prove)
Suppongo che i due diversi schemi di crittografia genererebbero risultati completamente diversi, quindi sono confuso sul perché questo sta accadendo. Pensavo di avere una migliore comprensione del codice di quello che sembra effettivamente.
Chiedo scusa se questo è un risultato dolorosamente ovvio, sono ancora un po 'nuovo in crypto.