public class SealedObject extends Object implements Serializable
任何可序列化的对象,可以创建一个原始对象SealedObject中可以封装,在序列化格式(即“深拷贝”),和海豹(加密)的序列化的内容,使用加密算法如DES,以保护其机密性。加密的内容以后可以解密(使用正确的解密密钥对应的算法)和反序列化,得到原始对象。
注意:密码必须完全初始化对象的正确算法,密钥,填充方案,等,在应用于SealedObject中可以。
被密封的原始对象可以以两种不同的方式恢复:
Cipher
,
Serialized Form
Modifier and Type | Field and Description |
---|---|
protected byte[] |
encodedParams
密封密码所使用的密码参数,以默认格式编码。
|
Modifier | Constructor and Description |
---|---|
protected |
SealedObject(SealedObject so)
构建了一个SealedObject中可以在SealedObject中可以从对象。
|
|
SealedObject(Serializable object, Cipher c)
任何可序列化的对象构建SealedObject中可以。
|
protected byte[] encodedParams
这是cipher.getParameters().getEncoded()
。
public SealedObject(Serializable object, Cipher c) throws IOException, IllegalBlockSizeException
给定的对象序列化,序列化的内容进行加密,使用给定的密码,必须完全初始化。
可用于加密操作任何算法参数存储在新的SealedObject
。
object
-被密封的对象;可以为空。
c
-用于密封对象的密码。
NullPointerException
-如果给定的密码为空。
IOException
-如果在序列化期间发生错误
IllegalBlockSizeException
-如果给定的密码是一种分组密码,无填料一直要求和总输入长度(即序列化对象的内容的长度)是没有密码的块大小的倍数
protected SealedObject(SealedObject so)
so
SealedObject中可以
NullPointerException
-如果给定的密封对象为空。
public final String getAlgorithm()
public final Object getObject(Key key) throws IOException, ClassNotFoundException, NoSuchAlgorithmException, InvalidKeyException
该方法创建了一个用于在密封操作中使用的算法的密码。如果默认的提供程序包提供了该算法的实现,使用该算法的一个包含该实现的密码的实例。如果该算法在默认包中不可用,则搜索其他包。对象初始化的密码解密,使用给定的key
和参数(如果有的话),已被用于密封操作。
被封装的对象是启封和反序列化,返回前。
key
使用打开对象的关键。
IOException
-如果在德serialiazation发生错误。
ClassNotFoundException
-如果在德serialiazation发生错误。
NoSuchAlgorithmException
如果打开对象的算法不可用。
InvalidKeyException
-如果给定的键不能用来开启的对象(例如,它有错误的算法)。
NullPointerException
-如果
key
是空的。
public final Object getObject(Cipher c) throws IOException, ClassNotFoundException, IllegalBlockSizeException, BadPaddingException
被封装的对象是密封(使用给定的密码,如果密码已经被正确地初始化)和反序列化,返回前。
c
使用打开对象的密码
NullPointerException
-如果给定的密码为空。
IOException
-如果在德serialiazation发生错误
ClassNotFoundException
-如果在德serialiazation发生错误
IllegalBlockSizeException
-如果给定的密码是一种分组密码,无填料一直要求和总输入长度不是密码的块大小的倍数
BadPaddingException
-如果给定的密码已经初始化为解密,并填充已被指定,但输入数据没有正确预期的填充字节
public final Object getObject(Key key, String provider) throws IOException, ClassNotFoundException, NoSuchAlgorithmException, NoSuchProviderException, InvalidKeyException
此方法创建一个已被用于密封操作的算法,利用给定的provider
,算法的实现。对象初始化的密码解密,使用给定的key
和参数(如果有的话),已被用于密封操作。
被封装的对象是启封和反序列化,返回前。
key
使用打开对象的关键。
provider
-算法的提供程序的名称打开对象。
IllegalArgumentException
-如果给定的提供者是null或空。
IOException
-如果在德serialiazation发生错误。
ClassNotFoundException
-如果在德serialiazation发生错误。
NoSuchAlgorithmException
如果打开对象的算法不可用。
NoSuchProviderException
-如果给定的供应商没有配置。
InvalidKeyException
-如果给定的键不能用来开启的对象(例如,它有错误的算法)。
NullPointerException
-如果
key
是空的。
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.