MessageDigest 类

定义

此 MessageDigest 类提供消息摘要算法的功能,例如 SHA-1 或 SHA-256。

[Android.Runtime.Register("java/security/MessageDigest", DoNotGenerateAcw=true)]
public abstract class MessageDigest : Java.Security.MessageDigestSpi
[<Android.Runtime.Register("java/security/MessageDigest", DoNotGenerateAcw=true)>]
type MessageDigest = class
    inherit MessageDigestSpi
继承
属性

注解

此 MessageDigest 类提供消息摘要算法的功能,例如 SHA-1 或 SHA-256。 消息摘要是安全的单向哈希函数,采用任意大小的数据并输出固定长度哈希值。

MessageDigest 对象开始初始化。 使用方法处理 #update(byte) update 数据。 #reset() reset随时可以调用以重置摘要。 更新所有数据后,应调用其中 #digest() digest 一种方法来完成哈希计算。

digest对于给定数量的更新,可以调用该方法一次。 调用后 digest ,MessageDigest 对象将重置为其初始化状态。

实现可以自由实现可克隆接口。 客户端应用程序可以通过尝试克隆和捕获 CloneNotSupportedException 来测试可克隆性:

{@code
            MessageDigest md = MessageDigest.getInstance("SHA-256");

            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");
            }
            }

请注意,如果给定实现不可克隆,则如果提前知道摘要数,仍可以通过实例化多个实例来计算中间摘要。

请注意,此类是抽象的,出于历史原因而 MessageDigestSpi 扩展。 应用程序开发人员应只注意此类 MessageDigest 中定义的方法;超级类中的所有方法都适用于希望提供消息摘要算法自身实现的加密服务提供商。

Android 提供以下MessageDigest算法:<表><><><><支持 API 级别>/th<><></tr></thead><><><td>MD5</td><td>1+/td/<><>tr tr td<SHA-1>/<>td 1+/td<> td<1+></td></tr><tr><td>SHA-224</td><td>1-8,22+</td/tr><><td><> SHA-256</td><td>1+</td></tr><><td>SHA-384</td><td>1+</td></tr><><td>SHA-512</td><>1+</td></tr></tbody></table>

Java加密体系结构标准算法名称文档的 MessageDigest 部分介绍了这些算法。

在 1.1 中添加。

Java文档java.security.MessageDigest

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

构造函数

名称 说明
MessageDigest(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

MessageDigest(String)

使用指定的算法名称创建消息摘要。

属性

名称 说明
Algorithm

返回一个字符串,该字符串标识算法,与实现详细信息无关。

Class

返回此 Object的运行时类。

(继承自 Object)
DigestLength

返回摘要的长度(以字节为单位);如果提供程序不支持此操作并且实现不可克隆,则返回 0。

Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

获取互操作运行时分配给此Java对等的标识哈希代码。

(继承自 Object)
JniManagedPeerState

此 MessageDigest 类提供消息摘要算法的功能,例如 SHA-1 或 SHA-256。

(继承自 JavaObject)
JniPeerMembers

此 MessageDigest 类提供消息摘要算法的功能,例如 SHA-1 或 SHA-256。

PeerReference

获取此Java对等方的 JNI 对象引用。

(继承自 Object)
Provider

返回此消息摘要对象的提供程序。

ThresholdClass

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不打算直接从代码使用。

方法

名称 说明
Clone()

如果实现可克隆,则返回克隆。

(继承自 MessageDigestSpi)
Construct(JniObjectReference, JniObjectReferenceOptions)

此 MessageDigest 类提供消息摘要算法的功能,例如 SHA-1 或 SHA-256。

(继承自 JavaObject)
Digest()

通过执行最终操作(如填充)来完成哈希计算。

Digest(Byte[], Int32, Int32)

通过执行最终操作(如填充)来完成哈希计算。

Digest(Byte[])

使用指定的字节数组对摘要执行最终更新,然后完成摘要计算。

Dispose()

释放此Java对等方持有的资源。

(继承自 Object)
Dispose(Boolean)

释放此Java对等方持有的资源。

(继承自 Object)
DisposeUnlessReferenced()

此 MessageDigest 类提供消息摘要算法的功能,例如 SHA-1 或 SHA-256。

(继承自 JavaObject)
EngineDigest()

通过执行最终操作(如填充)来完成哈希计算。

(继承自 MessageDigestSpi)
EngineDigest(Byte[], Int32, Int32)

通过执行最终操作(如填充)来完成哈希计算。

(继承自 MessageDigestSpi)
EngineGetDigestLength()

返回摘要长度(以字节为单位)。

(继承自 MessageDigestSpi)
EngineReset()

重置摘要以供进一步使用。

(继承自 MessageDigestSpi)
EngineUpdate(Byte[], Int32, Int32)

使用指定的字节数组更新摘要,从指定的偏移量开始。

(继承自 MessageDigestSpi)
EngineUpdate(ByteBuffer)

使用指定的 ByteBuffer 更新摘要。

(继承自 MessageDigestSpi)
EngineUpdate(SByte)

使用指定的字节更新摘要。

(继承自 MessageDigestSpi)
Equals(Object)

此 MessageDigest 类提供消息摘要算法的功能,例如 SHA-1 或 SHA-256。

(继承自 JavaObject)
Equals(Object)

指示其他对象是否“等于”此对象。

(继承自 Object)
GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
GetInstance(String, Provider)

返回实现指定摘要算法的 MessageDigest 对象。

GetInstance(String, String)

返回实现指定摘要算法的 MessageDigest 对象。

GetInstance(String)

返回实现指定摘要算法的 MessageDigest 对象。

IsEqual(Byte[], Byte[])

比较两个摘要是否相等。

JavaFinalize()

当垃圾回收确定不再引用该对象时,由对象上的垃圾回收器调用。

(继承自 Object)
Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
Reset()

重置摘要以供进一步使用。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

此 MessageDigest 类提供消息摘要算法的功能,例如 SHA-1 或 SHA-256。

(继承自 JavaObject)
ToArray<T>()

从此Java数组包装器创建托管数组。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnregisterFromRuntime()

从互操作运行时取消注册此Java对等。

(继承自 Object)
Update(Byte[], Int32, Int32)

使用指定的字节数组更新摘要,从指定的偏移量开始。

Update(Byte[])

使用指定的字节数组更新摘要。

Update(ByteBuffer)

使用指定的 ByteBuffer 更新摘要。

Update(SByte)

使用指定的字节更新摘要。

Wait()

使当前线程等待,直到唤醒它,通常是通过 em 通知/em< 或 >em<interrupted>/em<。><>

(继承自 Object)
Wait(Int64, Int32)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)
Wait(Int64)

使当前线程等待直到唤醒,通常是通过 <em>通知</em> 或 <em interrupted>/em<>,或直到经过一定数量的实时。

(继承自 Object)

显式接口实现

名称 说明
IJavaPeerable.Disposed()

此 MessageDigest 类提供消息摘要算法的功能,例如 SHA-1 或 SHA-256。

(继承自 JavaObject)
IJavaPeerable.Finalized()

此 MessageDigest 类提供消息摘要算法的功能,例如 SHA-1 或 SHA-256。

(继承自 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

此 MessageDigest 类提供消息摘要算法的功能,例如 SHA-1 或 SHA-256。

(继承自 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

此 MessageDigest 类提供消息摘要算法的功能,例如 SHA-1 或 SHA-256。

(继承自 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

此 MessageDigest 类提供消息摘要算法的功能,例如 SHA-1 或 SHA-256。

(继承自 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

此 MessageDigest 类提供消息摘要算法的功能,例如 SHA-1 或 SHA-256。

(继承自 JavaObject)

扩展方法

名称 说明
GetJniTypeName(IJavaPeerable)

获取实例 self类型的 JNI 名称。

JavaAs<TResult>(IJavaPeerable)

尝试强制self键入TResult,检查强制是否在Java端有效。

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

此 MessageDigest 类提供消息摘要算法的功能,例如 SHA-1 或 SHA-256。

TryJavaCast<TResult>(IJavaPeerable, TResult)

尝试强制self键入TResult,检查强制是否在Java端有效。

适用于