JDK Tutorials - Herong's Tutorial Examples - Version 6.02, by Dr. Herong Yang
javax.crypto.Cipher - The Secret Key Encryption Class
This section provides a quick introduction of the cipher class, javax.crypto.Cipher, to encrypt input data with a secret key.
In the previous chapter, I learned how to use classes and interfaces in the JCE (Java Cryptography Extension) package to generate and manage secret keys. Now I am ready to learn how to use secret keys to encrypt or cipher any input data using the javax.crypto.Cipher class.
javax.crypto.Cipher is a class that provides functionality of a cryptographic cipher for encryption and decryption. It has the following major methods.
getInstance() - Returns a Cipher object of the specified transformation (algorithm plus options) from the implementation of the specified provider. If provider is not specified, the default implementation is used. This is a static method.
init() - Initializes this cipher for the specified operation mode with the specified key or public key certificate. Two important operation modes are Cipher.ENCRYPT_MODE and Cipher.DECRYPT_MODE.
update() - Feeds additional input data to this cipher and generates partial output data.
doFinal() - Feeds the last part of the input data to this cipher and generates the last part of the output data.
getBlockSize() - Returns the block size of this cipher.
getAlgorithm() - Returns the algorithm name of this cipher.
getProvider() - Returns the provider as a Provider object of this cipher.
See the next section how to use the javax.crypto.Cipher class in a sample program.
Last update: 2014.
Table of Contents
Downloading and Installing JDK 1.8.0 on Windows
Downloading and Installing JDK 1.7.0 on Windows
Downloading and Installing JDK 1.6.2 on Windows
Date, Time and Calendar Classes
Date and Time Object and String Conversion
Number Object and Numeric String Conversion
Locales, Localization Methods and Resource Bundles
Calling and Importing Classes Defined in Unnamed Packages
HashSet, Vector, HashMap and Collection Classes
Character Set Encoding Classes and Methods
Encoding Conversion Programs for Encoded Text Files
Datagram Network Communication
DOM (Document Object Model) - API for XML Files
DTD (Document Type Definition) - XML Validation
XSD (XML Schema Definition) - XML Validation
XSL (Extensible Stylesheet Language)
Message Digest Algorithm Implementations in JDK
Private key and Public Key Pair Generation
PKCS#8/X.509 Private/Public Encoding Standards
Digital Signature Algorithm and Sample Program
"keytool" Commands and "keystore" Files
KeyStore and Certificate Classes
Secret Key Generation and Management
►Cipher - Secret Key Encryption and Decryption
►javax.crypto.Cipher - The Secret Key Encryption Class
JceSecretCipher.java - Secret Key Encryption Sample Program
Blowfish and DES Secret Key Encryption Tests
JcePublicCipher.java - Private and Public Key Encryption
DSA Public Key Encryption Tests
RSA Public Key Encryption Tests
The SSL (Secure Socket Layer) Protocol
SSL Socket Communication Testing Programs