|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
javax.crypto
类 Cipher
java.lang.Object javax.crypto.Cipher
- 直接已知子类:
- NullCipher
-
public class Cipher
- extends Object
此类提供了针对加密和解密的密码 cipher 功能。它构成了 Java Cryptographic Extension (JCE) 框架的核心。
为创建 Cipher 对象,应用程序调用 Cipher 的 getInstance
方法并将请求的转换 名称传递给它。作为可选项,也可以指定提供程序的名称。
转换 是描述为产生某种输出而在给定的输入上执行的操作(或一组操作)的字符串。转换始终包括加密算法的名称(例如,DES),后面可能跟有一个反馈模式和填充方案。
转换具有下面的形式:
- “算法/模式/填充”或
- “算法”
(后一种情况下,使用此模式和填充方案的特定于提供程序的默认值)。例如,以下是有效的转换:
Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding");
在流 cipher 模式下(例如,DES
为 CFB
或 OFB
模式)请求块 cipher 时,用户可选择指定一次处理的位数,方法是将此数追加到模式名称中,如在 "DES/CFB8/NoPadding" 和 "DES/OFB32/PKCS5Padding" 转换中所示。如果未指定该数,则将使用特定于提供程序的默认值。(例如,"SunJCE" 提供程序使用默认的 64 位)。
- 从以下版本开始:
- 1.4
- 另请参见:
-
KeyGenerator
,SecretKey
字段摘要 | |
---|---|
static int |
DECRYPT_MODE 用于将 cipher 初始化为解密模式的常量。 |
static int |
ENCRYPT_MODE 用于将 cipher 初始化为加密模式的常量。 |
static int |
PRIVATE_KEY 用于指示要打开的密钥为“私钥”的常量。 |
static int |
PUBLIC_KEY 用于指示要打开的密钥为“公钥”的常量。 |
static int |
SECRET_KEY 用于指示要打开的密钥为“秘密密钥”的常量。 |
static int |
UNWRAP_MODE 用于将 cipher 初始化为密钥打开模式的常量。 |
static int |
WRAP_MODE 用于将 cipher 初始化为密钥包装模式的常量。 |
构造方法摘要 | |
---|---|
protected |
Cipher(CipherSpi cipherSpi, Provider provider, String transformation) 创建 Cipher 对象。 |
方法摘要 | |
---|---|
byte[] |
doFinal() 结束多部分加密或解密操作(取决于 cipher 的初始化方式)。 |
byte[] |
doFinal(byte[] input) 按单部分操作加密或解密数据,或者结束一个多部分操作。 |
int |
doFinal(byte[] output, int outputOffset) 结束多部分加密或解密操作(取决于 cipher 的初始化方式)。 |
byte[] |
doFinal(byte[] input, int inputOffset, int inputLen) 按单部分操作加密或解密数据,或者结束一个多部分操作。 |
int |
doFinal(byte[] input, int inputOffset, int inputLen, byte[] output) 按单部分操作加密或解密数据,或者结束一个多部分操作。 |
int |
doFinal(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) 按单部分操作加密或解密数据,或者结束一个多部分操作。 |
int |
doFinal(ByteBuffer input, ByteBuffer output) 按单部分操作加密或解密数据,或者结束一个多部分操作。 |
String |
getAlgorithm() 返回此 Cipher 对象的算法名称。 |
int |
getBlockSize() 返回块的大小(以字节为单位)。 |
ExemptionMechanism |
getExemptionMechanism() 返回此 cipher 使用的豁免机制对象。 |
static Cipher |
getInstance(String transformation) 生成一个实现指定转换的 Cipher 对象。 |
static Cipher |
getInstance(String transformation, Provider provider) 创建一个实现指定转换的 Cipher 对象,该转换由指定的提供程序提供。 |
static Cipher |
getInstance(String transformation, String provider) 创建一个实现指定转换的 Cipher 对象,该转换由指定的提供程序提供。 |
byte[] |
getIV() 返回新缓冲区中的初始化向量 (IV)。 |
static int |
getMaxAllowedKeyLength(String transformation) 根据所安装的 JCE 仲裁策略文件返回指定转换的最大密钥长度。 |
static AlgorithmParameterSpec |
getMaxAllowedParameterSpec(String transformation) 根据仲裁策略文件返回包含最大 cipher 参数值的 AlgorithmParameterSpec 对象。 |
int |
getOutputSize(int inputLen) 在给定了输入长度 inputLen (以字节为单位)的情况下,返回用于保存下一个 update 或 doFinal 操作结果所需的输出缓冲区长度的字节数。 |
AlgorithmParameters |
getParameters() 返回此 cipher 使用的参数。 |
Provider |
getProvider() 返回此 Cipher 对象的提供程序。 |
void |
init(int opmode, Certificate certificate) 用来自给定证书的公钥初始化此 cipher。 |
void |
init(int opmode, Certificate certificate, SecureRandom random) 用来自给定证书的公钥和随机源初始化此 cipher。 |
void |
init(int opmode, Key key) 用密钥初始化此 cipher。 |
void |
init(int opmode, Key key, AlgorithmParameters params) 用密钥和一组算法参数初始化此 cipher。 |
void |
init(int opmode, Key key, AlgorithmParameterSpec params) 用密钥和一组算法参数初始化此 cipher。 |
void |
init(int opmode, Key key, AlgorithmParameterSpec params, SecureRandom random) 用一个密钥、一组算法参数和一个随机源初始化此 cipher。 |
void |
init(int opmode, Key key, AlgorithmParameters params, SecureRandom random) 用一个密钥、一组算法参数和一个随机源初始化此 cipher。 |
void |
init(int opmode, Key key, SecureRandom random) 用密钥和随机源初始化此 cipher。 |
Key |
unwrap(byte[] wrappedKey, String wrappedKeyAlgorithm, int wrappedKeyType) 打开一个以前包装的密钥。 |
byte[] |
update(byte[] input) 继续多部分加密或解密操作(取决于此 cipher 的初始化方式),以处理其他数据部分。 |
byte[] |
update(byte[] input, int inputOffset, int inputLen) 继续多部分加密或解密操作(取决于此 cipher 的初始化方式),以处理其他数据部分。 |
int |
update(byte[] input, int inputOffset, int inputLen, byte[] output) 继续多部分加密或解密操作(取决于此 cipher 的初始化方式),以处理其他数据部分。 |
int |
update(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) 继续多部分加密或解密操作(取决于此 cipher 的初始化方式),以处理其他数据部分。 |
int |
update(ByteBuffer input, ByteBuffer output) 继续多部分加密或解密操作(取决于此 cipher 的初始化方式),以处理其他数据部分。 |
byte[] |
wrap(Key key) 将密钥包装。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
ENCRYPT_MODE
public static final int ENCRYPT_MODE
-
用于将 cipher 初始化为加密模式的常量。
- 另请参见:
- 常量字段值
DECRYPT_MODE
public static final int DECRYPT_MODE
-
用于将 cipher 初始化为解密模式的常量。
- 另请参见:
- 常量字段值
WRAP_MODE
public static final int WRAP_MODE
-
用于将 cipher 初始化为密钥包装模式的常量。
- 另请参见:
- 常量字段值
UNWRAP_MODE
public static final int UNWRAP_MODE
-
用于将 cipher 初始化为密钥打开模式的常量。
- 另请参见:
- 常量字段值
PUBLIC_KEY
public static final int PUBLIC_KEY
-
用于指示要打开的密钥为“公钥”的常量。
- 另请参见:
- 常量字段值
PRIVATE_KEY
public static final int PRIVATE_KEY
-
用于指示要打开的密钥为“私钥”的常量。
- 另请参见:
- 常量字段值
SECRET_KEY
public static final int SECRET_KEY
-
用于指示要打开的密钥为“秘密密钥”的常量。
- 另请参见:
- 常量字段值
构造方法详细信息 |
---|
Cipher
protected Cipher(CipherSpi cipherSpi, Provider provider, String transformation)
-
创建 Cipher 对象。
- 参数:
-
cipherSpi
- 代理 -
provider
- 提供程序 -
transformation
- 转换
方法详细信息 |
---|
getInstance
public static final Cipher getInstance(String transformation) throws NoSuchAlgorithmException, NoSuchPaddingException
-
生成一个实现指定转换的
Cipher
对象。如果默认的提供程序包提供了请求的转换实现,则会返回包含该实现的一个
Cipher
实例。如果默认的提供程序包中没有可用的转换,则将搜索其他的提供程序包。 -
- 参数:
-
transformation
- 转换的名称,例如 DES/CBC/PKCS5Padding。有关标准转换名称的信息,请参见 Java Cryptography Extension Reference Guide 的附录 A。 - 返回:
- 实现所请求转换的 cipher
- 抛出:
-
NoSuchAlgorithmException
- 如果transformation
为 null、空、无效格式,或当前安装的提供程序中没有可用的转换。 -
NoSuchPaddingException
- 如果transformation
包含的填充方案不可用。