java中的Cipher类(二)

2014-11-24 07:20:08 · 作者: · 浏览: 5
erSpec params, SecureRandom random) 用一个密钥、一组算法参数和一个随机源初始化此 Cipher。

15、public final void init(int opmode, Key key, AlgorithmParameters params) 用密钥和一组算法参数初始化此 Cipher。

16、public final void init(int opmode, Key key, AlgorithmParameters params, SecureRandom random) 用一个密钥、一组算法参数和一个随机源初始化此 Cipher。

17、public final void init(int opmode, Certificate certificate) 用取自给定证书的公钥初始化此 Cipher。

18、public final void init(int opmode, Certificate certificate, SecureRandom random) 用取自给定证书的公钥和随机源初始化此 Cipher。

19、public final byte[] update(byte[] input) 继续多部分加密或解密操作(具体取决于此 Cipher 的初始化方式),以处理其他数据部分。 处理 input 缓冲区中的字节,并将结果存储在新的缓冲区中。 如果 input 长度为 0,则此方法返回 null

20、public final byte[] update(byte[] input, int inputOffset,int inputLen) 继续多部分加密或解密操作(具体取决于此 Cipher 的初始化方式),以处理其他数据部分。

21、public final int update(byte[] input, int inputOffset, int inputLen, byte[] output) 继续多部分加密或解密操作(具体取决于此 Cipher 的初始化方式),以处理其他数据部分。 处理 input 缓冲区中从 inputOffset 开始(包含)的前 inputLen 个字节,并将结果存储在 output 缓冲区中。

如果 output 缓冲区太小无法保存该结果,则抛出 ShortBufferException。这种情况下,使用一个稍大的缓冲区再次调用。使用 getOutputSize 确定输出缓冲区应为多大。 如果 inputLen 为 0,则此方法返回的长度为 0。

注:此方法应该是复制安全 (copy-safe) 的,这意味着 inputoutput 缓冲区可引用相同的 byte 数组,并且在将结果复制到输出缓冲区时,不会覆盖任何未处理的输入数据。

22、public final int update(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) 继续多部分加密或解密操作(具体取决于此 Cipher 的初始化方式),以处理其他数据部分。

23、public final int update(ByteBuffer input, ByteBuffer output) 继续多部分加密或解密操作(具体取决于此 Cipher 的初始化方式),以处理其他数据部分。

24、public final byte[] doFinal() throws IllegalBlockSizeException, BadPaddingException 结束多部分加密或解密操作(具体取决于此 Cipher 的初始化方式)。

处理在上一次 update 操作中缓存的输入数据,其中应用了填充(如果请求)。结果将存储在新缓冲区中。 结束时,此方法将此 Cipher 对象重置为上一次调用 init 初始化得到的状态。即该对象被重置,并可用于加密或解密(具体取决于调用 init 时指定的操作模式)更多的数据。

注:如果抛出了任何异常,则再次使用此 Cipher 对象前需要将其重置。

返回: 包含结果的新缓冲区 抛出: IllegalStateException - 如果此 Cipher 处于错误状态(例如,尚未初始化) IllegalBlockSizeException - 如果此 Cipher 为 Cipher 块,未请求任何填充(只针对加密模式),并且由此 Cipher 处理的数据总输入长度不是块大小的倍数;如果此加密算法无法处理所提供的输入数据。 BadPaddingException - 如果此 Cipher 为解密模式,并且未请求填充(或不填充),但解密的数据没有用适当的填充字节进行限制

25、public final int doFinal(byte[] output, int outputOffset) 结束多部分加密或解密操作(具体取决于此 Cipher 的初始化方式)。

26、public final byte[] doFinal(byte[] input) 按单部分操作加密或解密数据,或者结束一个多部分操作。数据将被加密或解密(具体取决于此 Cipher 的初始化方式)。

27、public final byte[] doFinal(byte[] input, int inputOffset, int inputLen) 按单部分操作加密或解密数据,或者结束一个多部分操作。数据将被加密或解密(具体取决于此 Cipher 的初始化方式)。

28、public final int doFinal(byte[] input, int inputOffset, int inputLen, byte[] output) 按单部分操作加密或解密数据,或者结束一个多部分操作。数据将被加密或解密(具体取决于此 Cipher 的初始化方式)。

29、public final int doFinal(byte[] input, int inputOffset, int inputLen, byte[] output, int outputOffset) 按单部分操作加密或解密数据,或者结束一个多部分操作。数据将被加密或解密(具体取决于此 Cipher 的初始化方式)。

30、public final int doFinal(ByteBuffer input, ByteBuffer output) 按单部分操作加密或解密数据,或者结束一个多部分操作。数据将被加密或解密(具体取决于此 Cipher 的初始化方式)。

31、public final byte[] wrap(Keykey) throws IllegalBlockSizeException, InvalidKeyException 包装密钥。

抛出: IllegalStateException - 如果此 Cipher 处于错误状态(例如,尚未初始化) IllegalBlockSizeException - 如果此 Cipher 为 Cipher 块,未请求填充,并且要包装的密钥的编码长度不是块大小的倍数。 InvalidKeyException - 如果不能用此 Cipher 包装该密钥,或者这样做不安全(例如,将一个硬件保护的密钥传给只能用于软件保护的 Cipher)。

32、

public final Key unwrap(byte[] wrappedKey, String wrappedKeyAlgorithm,int wrappedKeyType)throws InvalidKeyException,NoSuchAlgorithmException  解包一个以前包装的密钥。
参数: wra