“ClodoaldoJR”:
… o método getInstance() da classe KeyGenerator do pacote javax.crypto.*;
assinatura: public static final KeyGenerator getInstance(String algorithm,
String provider)
Na verdade é um pouco mais difícil do que parece.
Se você vai usar o provider da Sun, que é o padrão, ele aceita relativamente poucos algoritmos - isso depende da versão do JDK que você está usando. E essa string, como você leu na documentação, tem 3 partes, separadas por ‘/’:
- O algoritmo (AES, DES etc.)
- O modo (CBC, ECB etc.)
- e o “padding” (NoPadding, PKCS5Padding)
Só que tem uma coisa. Normalmente quando você vai trabalhar com criptografia é muito raro que você use o tal do KeyGenerator, a menos que você esteja usando para gerar chaves de sessão (ou seja, uma chave diferente para cada comunicação); você normalmente tem uma senha, ou chave fixa em algum lugar, e você em vez de usar KeyGenerator usa SecretKeySpec. Procure isso (SecretKeySpec) no Google para ver como é usado.
Procure no google sobre “Password-Based Encryption”, que 99% do tempo é o que você quer (e poucos ensinam a usar direito; normalmente o pessoal ensina o tal do KeyGenerator, que normalmente gera uma chave diferente a cada vez que você vai trabalhar - nem sempre é o que você quer fazer).