java.security Cipher 对象详细介绍

  • Post author:
  • Post category:java


cipher对象:此类为java.securtiy 为密码进行加密,解密的对象,根据java 1.6 doc


javadoc 介绍:


此类为加密和解密提供密码功能。它构成了 Java Cryptographic Extension (JCE) 框架的核心。



创建Cipher 对象:

通过Cipher.getInstance(“str”)  ,传入的值有两种情况:1.算法名称 2.算法/模式/填充

cipher类常量,

我们一般接触发到的就是两个:

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。




java 1.6 doc 中 cipher类支持的算法,模型,填充方式如下:


* cipher类支持的算法有:

AES

AESWrap

ARCFOUR

Blowfish

DES

DESede

DESedeWrap

ECIES

PBEWith<digest>And<encryption>PBEWith<prf>And<encryption>

例如:PBEWithMD5AndDES     ;PBEwithSHA1AndDESede

RC2

RC4

RC5

RSA

支持的mode有:

NONE

CBC

CFB, CFBx

CTR

CTS

ECB

OFB, OFBx

PCBC

支持的填充方式有

NoPadding

ISO10126Padding

OAEPPadding, OAEPWith<digest>And<mgf>Padding

例如: OAEPWithMD5AndMGF1Padding ; OAEPWithSHA-512AndMGF1Padding

PKCS1Padding

PKCS5Padding

PKCS5Padding