The Cipher Class
class is a concrete
class that encrypts arrays of bytes. The default implementation
performs no encryption, but you’ll never see this. You’ll
only receive subclasses that implement particular algorithms.
public class Cipher extends Object
The subclasses of
that do real encryption are supplied by
providers. Different providers can provide different sets of
algorithms. For instance, an authoritarian government might only
allow the installation of algorithms it knew how to crack, and create
a provider that provided those algorithms and only those algorithms.
A corporation might want to install algorithms that allowed for key
recovery in the event that an employee left the company or forgot
JDK 1.2 only includes the Sun provider that supplies no encryption schemes, though it does supply several digest algorithms. The JCE adds one more provider, SunJCE, which provides DES, triple DES (DESede), and password-based encryption (PBE). RSA’s payware JSafe product has a security provider that provides the RSA, DES, DESede, RC2, RC4, and RC5 cipher algorithms. Ireland’s Baltimore Technologies payware J/Crypto software has a security provider that provides the RSA, DES, DESede, RC2, RC4, and PBE cipher algorithms. Table 10.2 lists several of the available security providers and the algorithms they implement.
Table 10-2. Security Providers
Product (Company, Country)
JDK 1.2 (Sun, U.S.)