MessageDigest 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
此 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演算法:<table><thead><tr><th>演算法</th><>支援的 API 等級/<th></tr></thead><tbody><tr><td>MD5</td td><>1+</td></tr><tr><td>SHA-1</td td><>1+</td></tr><tr td>SHA-224<></tdTD 1-8,22+>/TD<>/TR<>TR TD<><SHA-256>/TD<>TD<1+>/TD<>/TR<>TD<><TD SHA-384>/TD<>TD<1+>/TD<>/TR<>TR<><TD SHA-512>/TD<>TD<1+>/TD<><>/tbody<>/Table<><>
這些演算法在 Java 密碼架構標準演算法名稱文件的 MessageDigest 章節中有描述。
在 1.1 版本中加入。
Java 文件 java.security.MessageDigest。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| MessageDigest(IntPtr, JniHandleOwnership) |
用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。 |
| MessageDigest(String) |
建立包含指定演算法名稱的訊息摘要。 |
屬性
| 名稱 | Description |
|---|---|
| Algorithm |
回傳一個字串,與實作細節無關,識別演算法。 |
| Class |
回傳此 |
| 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 基礎架構,並非直接從你的程式碼中使用。 |
方法
| 名稱 | Description |
|---|---|
| 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>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
明確介面實作
| 名稱 | Description |
|---|---|
| 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) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
此 MessageDigest 類別為應用程式提供訊息摘要演算法的功能,例如 SHA-1 或 SHA-256。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |