Quiero entender cómo funciona el cifrado basado en contraseña. Como sé, la contraseña se utiliza para generar sólo la clave. También hay una sal siempre aleatoria, que es usuario para evitar los ataques de diccionario y no permitir que los malos obtengan el hash de la contraseña. Así que la contraseña y el salt están creando una clave, que se puede utilizar para el cifrado. Una vez creada la clave, el objeto de cifrado la utiliza.
Pero lo que no entiendo es la especificación de los métodos PBE. Digamos que tenemos - PBEWithSHAAnd128BitAES-CBC-BC. Por el nombre de esto, entiendo que la clave es de 128 bits y se puede usar para AES. Además, la clave está en hash con SHA y el proveedor es Bouncy Castle. Pero, ¿qué es lo que no entiendo, cómo el CBC entra en el nombramiento? ¿Dice que puedo usar esta clave solo para CBC? Pero cuando trato de usarlo en modo CTS u OFB, todo funciona bien. Entonces, ¿por qué el modo de bloqueo está ahí? ¿O entiendo mal todo esto?