Spec-Zone .ru
спецификации, руководства, описания, API
|
public abstract class MessageDigest extends MessageDigestSpi
Объект MessageDigest начинается инициализированный. Данные обрабатываются через это использующий update
методы. В любой точке reset
может быть вызван, чтобы сбросить обзор. Как только все данные, которые будут обновлены, были обновлены, один из digest
методы нужно вызвать, чтобы завершить вычисление хеша.
digest
однажды метод можно вызвать для данного числа обновлений. После digest
был вызван, объект MessageDigest сбрасывается к его инициализированному состоянию.
Реализации свободны реализовать интерфейс Cloneable. Клиентские приложения могут протестировать cloneability, делая попытку клонирования и ловли CloneNotSupportedException:
MessageDigest md = MessageDigest.getInstance("SHA"); try { md.update(toChapter1); MessageDigest tc1 = md.clone(); byte[] toChapter1Digest = tc1.digest(); md.update(toChapter2); ...etc. } catch (CloneNotSupportedException cnse) { throw new DigestException("couldn't make digest of partial content"); }
Отметьте, что, если данная реализация не является cloneable, все еще возможно вычислить промежуточные обзоры, инстанцируя нескольких экземпляров, если число обзоров известно заранее.
Отметьте, что этот класс абстрактен и расширяется от MessageDigestSpi
по историческим причинам. Разработчики приложений должны только заметить методов, определенных в этом MessageDigest
класс; все методы в суперклассе предназначаются для провайдеров криптографических служб, которые хотят предоставить их собственные реализации алгоритмов обзора сообщения.
Каждая реализация платформы Java обязана поддерживать следующий стандарт MessageDigest
алгоритмы:
DigestInputStream
, DigestOutputStream
Модификатор | Конструктор и Описание |
---|---|
protected |
MessageDigest(String algorithm)
Создает обзор сообщения с указанным именем алгоритма.
|
Модификатор и Тип | Метод и Описание |
---|---|
Объект |
clone()
Возвращает клона, если реализация является cloneable.
|
byte[] |
digest()
Завершает вычисление хеша, выполняя заключительные операции, такие как дополнение.
|
byte[] |
digest(byte[] input)
Выполняет заключительное обновление об обзоре, используя указанный массив байтов, затем завершает вычисление обзора.
|
int |
digest(byte[] buf, int offset, int len)
Завершает вычисление хеша, выполняя заключительные операции, такие как дополнение.
|
Строка |
getAlgorithm()
Возвращает строку, которая идентифицирует алгоритм, независимый от деталей реализации.
|
int |
getDigestLength()
Возвращает длину обзора в байтах, или 0, если эта работа не поддерживается провайдером, и реализация не является cloneable.
|
static MessageDigest |
getInstance(String algorithm)
Возвращается MessageDigest возражают, что реализует указанный алгоритм обзора.
|
static MessageDigest |
getInstance(String algorithm, Provider provider)
Возвращается MessageDigest возражают, что реализует указанный алгоритм обзора.
|
static MessageDigest |
getInstance(String algorithm, String provider)
Возвращается MessageDigest возражают, что реализует указанный алгоритм обзора.
|
Провайдер |
getProvider()
Возвращает провайдера этого объекта обзора сообщения.
|
static boolean |
isEqual(byte[] digesta, byte[] digestb)
Сравнивает два обзора для равенства.
|
void |
reset()
Сбрасывает обзор для дальнейшего использования.
|
Строка |
toString()
Возвращает строковое представление этого объекта обзора сообщения.
|
void |
update(byte input)
Обновляет обзор, используя указанный байт.
|
void |
update(byte[] input)
Обновляет обзор, используя указанный массив байтов.
|
void |
update(byte[] input, int offset, int len)
Обновляет обзор, используя указанный массив байтов, запускаясь при указанном смещении.
|
void |
update(ByteBuffer input)
Обновите обзор, используя указанный ByteBuffer.
|
engineDigest, engineDigest, engineGetDigestLength, engineReset, engineUpdate, engineUpdate, engineUpdate
protected MessageDigest(String algorithm)
algorithm
- стандартное имя алгоритма обзора. См. раздел MessageDigest в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма.public static MessageDigest getInstance(String algorithm) throws NoSuchAlgorithmException
Этот метод пересекает список зарегистрированных поставщиков систем обеспечения безопасности, запускающихся с самого привилегированного Провайдера. Возвращается новый объект MessageDigest инкапсуляция реализации MessageDigestSpi от первого Провайдера, который поддерживает указанный алгоритм.
Отметьте, что список зарегистрированных провайдеров может быть получен через Security.getProviders()
метод.
algorithm
- имя алгоритма требуют. См. раздел MessageDigest в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма.NoSuchAlgorithmException
- если никакой Провайдер не поддерживает реализацию MessageDigestSpi для указанного алгоритма.Provider
public static MessageDigest getInstance(String algorithm, String provider) throws NoSuchAlgorithmException, NoSuchProviderException
Возвращается новый объект MessageDigest инкапсуляция реализации MessageDigestSpi от указанного провайдера. Указанный провайдер должен быть зарегистрирован в списке поставщика систем обеспечения безопасности.
Отметьте, что список зарегистрированных провайдеров может быть получен через Security.getProviders()
метод.
algorithm
- имя алгоритма требуют. См. раздел MessageDigest в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма.provider
- имя провайдера.NoSuchAlgorithmException
- если реализация MessageDigestSpi для указанного алгоритма не доступна от указанного провайдера.NoSuchProviderException
- если указанный провайдер не регистрируется в списке поставщика систем обеспечения безопасности.IllegalArgumentException
- если имя провайдера является нулем или пустой.Provider
public static MessageDigest getInstance(String algorithm, Provider provider) throws NoSuchAlgorithmException
Возвращается новый объект MessageDigest инкапсуляция реализации MessageDigestSpi от указанного объекта Провайдера. Отметьте, что указанный объект Провайдера не должен быть зарегистрирован в списке провайдера.
algorithm
- имя алгоритма требуют. См. раздел MessageDigest в Документации Имени Алгоритма Стандарта Архитектуры Криптографии Java для информации о стандартных именах алгоритма.provider
- провайдер.NoSuchAlgorithmException
- если реализация MessageDigestSpi для указанного алгоритма не доступна от указанного объекта Провайдера.IllegalArgumentException
- если указанный провайдер является нулем.Provider
public final Provider getProvider()
public void update(byte input)
input
- байт, с которым можно обновить обзор.public void update(byte[] input, int offset, int len)
input
- массив байтов.offset
- смещение, чтобы запуститься с в массиве байтов.len
- число байтов, чтобы использовать, запускаясь в offset
.public void update(byte[] input)
input
- массив байтов.public final void update(ByteBuffer input)
input.remaining()
байты, запускающиеся в input.position()
. По возврату позиция буфера будет равна своему пределу; его предел не будет изменяться.input
- ByteBufferpublic byte[] digest()
public int digest(byte[] buf, int offset, int len) throws DigestException
buf
- буфер вывода для вычисленного обзораoffset
- смещение в буфер вывода, чтобы начать хранить обзорlen
- число байтов в пределах buf выделяется для обзораbuf
DigestException
- если ошибка происходит.public byte[] digest(byte[] input)
update(input)
, передача ввода выстраивает к update
метод, затем вызывает digest()
.input
- ввод, который будет обновлен перед обзором, завершается.public String toString()
public static boolean isEqual(byte[] digesta, byte[] digestb)
digesta
- один из обзоров, чтобы сравниться.digestb
- другой обзор, чтобы сравниться.public void reset()
public final String getAlgorithm()
public final int getDigestLength()
public Object clone() throws CloneNotSupportedException
clone
в классе MessageDigestSpi
CloneNotSupportedException
- если это вызывают на реализации, которая не поддерживает Cloneable
.Cloneable
Для дальнейшей ссылки API и документации разработчика, см.
Авторское право © 1993, 2011, Oracle и/или его филиалы. Все права защищены.