cipher对象:此类为java.securtiy 为密码进行加密,解密的对象,根据java 1.6 doc
此类为加密和解密提供密码功能。它构成了 Java Cryptographic Extension (JCE) 框架的核心。
通过Cipher.getInstance("str") ,传入的值有两种情况:1.算法名称 2.算法/模式/填充
我们一般接触发到的就是两个:
ENCRYPT_MODE 表明是此时是加密模式,DECRYPT_MODE 表明此时是解密模式
1.getInstance("str");通过传入算法名称,生成对应的cipher对象
2.doFinal();结束多部分加密或解密操作
3.doFinal(多参数);有几个重载方法,结束单部分或(多部分)加解密操作
4.init(); 初始化cipher对象,有多个重载方法,根据传入参数不同进行重载
5.getAlgorithm();返回加密算法名称
6.getBlockSize();返回加密块的大小
7.update();继续多部分加密解密操作,根据传入方法不同
8.wrap();包装秘钥
9.unwrap();解包秘钥
10;getProvider();返回cipher对象的提供者
11.getParameter();返回cipher对象的参数
12,getIV();返回新缓冲区初始化变量
13,getExemptionMechanism();返回豁免机制对象,如果不使用返回null
14.getOutputSize();根据给定的输入长度 inputLen
(以字节为单位),返回保存下一个 update
或 doFinal
操作结果所需的输出缓冲区长度(以字节为单位)。
15.getMaxAllowedKeyLength();JCE 仲裁策略文件,返回指定转换的最大密钥长度;一般最大只能秘钥长度只能到128位,例如:AES加密如果要实现256位,则要安装了 JCE 无限制强度仲裁策略文件,则返回 Integer.MAX_VALUE
16.getMaxAllowedParameterSpec();返回仲裁策略文件,返回包含最大 Cipher 参数值的 AlgorithmParameterSpec 对象。如果安装了 JCE 无限制强度仲裁策略文件,或者策略文件中对用于指定转换的参数没有最大限制,则返回 null。
* cipher类支持的算法有:
AES
AESWrap
ARCFOUR
Blowfish
DES
DESede
DESedeWrap
ECIES
PBEWith
例如:PBEWithMD5AndDES ;PBEwithSHA1AndDESede
RC2
RC4
RC5
RSA
支持的mode有:
NONE
CBC
CFB, CFBx
CTR
CTS
ECB
OFB, OFBx
PCBC
支持的填充方式有
NoPadding
ISO10126Padding
OAEPPadding, OAEPWith
例如: OAEPWithMD5AndMGF1Padding ; OAEPWithSHA-512AndMGF1Padding
PKCS1Padding
PKCS5Padding
PKCS5Padding