The Cipher Class
The
javax.crypto.Cipher
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 Cipher
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
their password.
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) |
URL |
Digests |
Ciphers |
License |
---|---|---|---|---|
JDK 1.2 (Sun, U.S.) |
Get Java I/O now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.