O bloco final dado não foi devidamente preenchido

Estou tentando implementar um algoritmo de criptografia baseado em senha, mas recebo esta exceção: javax.crypto.BadPaddingException: bloco final fornecido não preenchido corretamente Qual pode ser o problema? Aqui está o meu código: public class PasswordCrypter { private Key key; public...