Dado que el bloque final no está debidamente acolchado

Estoy tratando de implementar un algoritmo de cifrado basado en contraseña, pero obtengo esta excepción: javax.crypto.BadPaddingException: el bloque final dado no se rellenó correctamente ¿Cuál podría ser el problema? Aquí está mi código: public class PasswordCrypter { private Key key;...