Spec-Zone .ru
спецификации, руководства, описания, API
|
public class SealedObject extends Object implements Serializable
Учитывая любой Сериализуемый объект, можно создать SealedObject, который инкапсулирует исходный объект, в сериализированном формате (то есть, "глубокая копия"), и изоляции (шифруют) ее сериализированное содержание, используя криптографический алгоритм, такое как DES, чтобы защитить ее конфиденциальность. Зашифрованный контент может позже быть дешифрован (с соответствующим алгоритмом, используя корректный ключ расшифровки) и десериализован, приводя к исходному объекту.
Отметьте, что объект Шифра должен быть полностью инициализирован с корректным алгоритмом, ключом, дополняя схему, и т.д., прежде, чем быть примененным к SealedObject.
Исходный объект, который был изолирован, может быть восстановлен двумя различными способами:
getObject
метод, который берет a Cipher
объект. Этот метод требует полностью инициализированный Cipher
объект, инициализированный с тем же самым алгоритмом, ключом, дополняя схему, и т.д., которые использовались, чтобы изолировать объект.
У этого подхода есть преимущество, что сторона, кто распечатывает изолированный объект, не требует знания ключа расшифровки. Например, после того, как одна сторона инициализировала объект шифра с необходимым ключом расшифровки, это могло передать объект шифра к другой стороне, кто тогда распечатывает изолированный объект.
getObject
методы, которые берут a Key
объект. В этом подходе, getObject
метод создает объект шифра для соответствующего алгоритма дешифрования и инициализирует его с данным ключом расшифровки и параметрами алгоритма (если любой), которые были сохранены в изолированном объекте.
У этого подхода есть преимущество, что сторона, кто распечатывает объект, не должна отследить параметры (например, IV), которые использовались, чтобы изолировать объект.
Cipher
, Сериализированная ФормаМодификатор и Тип | Поле и Описание |
---|---|
protected byte[] |
encodedParams
Криптографические параметры, используемые Шифром изоляции, закодированным в формате значения по умолчанию.
|
Модификатор | Конструктор и Описание |
---|---|
protected |
SealedObject(SealedObject so)
Создает объект SealedObject из переданного - в SealedObject.
|
|
SealedObject(Serializable object, Cipher c)
Создает SealedObject из любого Сериализуемого объекта.
|
Модификатор и Тип | Метод и Описание |
---|---|
Строка |
getAlgorithm()
Возвращает алгоритм, который использовался, чтобы изолировать этот объект.
|
Объект |
getObject(Cipher c)
Получает исходный (инкапсулировавший) объект.
|
Объект |
getObject(Key key)
Получает исходный (инкапсулировавший) объект.
|
Объект |
getObject(Key key, String provider)
Получает исходный (инкапсулировавший) объект.
|
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
- объект SealedObjectNullPointerException
- если данный изолированный объект является нулем.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
- если ошибка происходит во время де-serialiazationClassNotFoundException
- если ошибка происходит во время де-serialiazationIllegalBlockSizeException
- если данный шифр является блочным шифром, никакое дополнение не требовали, и длина общих затрат не является кратным числом размера блока шифраBadPaddingException
- если данный шифр был инициализирован для дешифрования, и дополнение было определено, но входные данные не имеют надлежащим, ожидал дополнять байтыpublic final Object getObject(Key key, String provider) throws IOException, ClassNotFoundException, NoSuchAlgorithmException, NoSuchProviderException, InvalidKeyException
Этот метод создает шифр для алгоритма, который использовался в работе изоляции, используя реализацию того алгоритма от данного provider
. Объект Шифра инициализируется для дешифрования, используя данный key
и параметры (если любой), который использовался в работе изоляции.
Инкапсулировавший объект распечатывается и десериализовывается, прежде, чем он будет возвращен.
key
- ключ, используемый, чтобы распечатать объект.provider
- имя провайдера алгоритма, чтобы распечатать объект.IllegalArgumentException
- если данный провайдер является нулем или пустой.IOException
- если ошибка происходит во время де-serialiazation.ClassNotFoundException
- если ошибка происходит во время де-serialiazation.NoSuchAlgorithmException
- если алгоритм, чтобы распечатать объект не доступен.NoSuchProviderException
- если данный провайдер не конфигурируется.InvalidKeyException
- если данный ключ не может использоваться, чтобы распечатать объект (например, у этого есть неправильный алгоритм).NullPointerException
- если key
нуль.
Для дальнейшей ссылки API и документации разработчика, см. Java Документация SE. Та документация содержит более подробные, предназначенные разработчиком описания, с концептуальными краткими обзорами, определениями сроков, обходных решений, и рабочих примеров кода.
Авторское право © 1993, 2013, Oracle и/или его филиалы. Все права защищены.
Проект сборка-b92