Hola...
A partir de JDK 1.3, la biblioteca JCE (Java Crypto Extension) ya viene incluída con el paquete básico de clases JDK.
La clase Cipher te da opciones de algoritmos de distintas clases. Necesitarás un proveedor para según qué algoritmos, pero ya viene uno con la JDK, (v. clase Security.getProviders() ), en cada implementación de JDK han ido metiendo cosas nuevas, pero si quieres un algoritmo para el que no tienen soporte, necesitarás descargar algunas cosas de internet. Te remito a BouncyCastle, por ejemplo.
En cuanto a cosas de encriptación, ten cuidado con el almacenaje.
En el caso de Linux, creo recordar, las contraseñas se almacenan encriptadas con DES3 y para compararla con la introducida, se encripta y se compara, porque es más rápido que desencriptar la que hay guardada. (No sé si me explico)
Espero que te sirva.
Un saludo.
Silverfox