Blowfish est l'algorithme de cryptage le plus utilisé dans les programmes Java. Ceci est probablement essentiellement dû au fait qu'il est rapide, très fiable et surtout qu'il est libre d'utilisation (pas de brevet). La classe MyBlowfish permet de le mettre en oeuvre.
La classe TestPBE permet d'encrypter un texte en utilisant l'algorithme PBE (Password Based Encryption). Le risque d'utiliser un mot de passe directement comme clé est d'obtenir des motifs dans le ciphertext. PBE résout le problème en "salant" (salting) le mot de passe (c'est-à-dire en ajoutant des données aléatoires), puis en lui appliquant successivement un certain nombre de fois (nombre d'itérations) une fonction de hachage (typiquement MD5). Les deux paramètres utilisés, "salt" (un tableaux de bytes aléatoires) et "iterations" (le nombre de fois qu'on applique MD5) doivent être enregistrés comme paramètres du Cipher afin de pouvoir être utilisés lors du décodage. Dans ce programme le salt est généré de manière aléatoire à chaque exécution, ce qui explique que le ciphertext est différent à chaque fois même si on encrypte le même plaintext avec le même mot de passe.