java中的key介面解析_java

來源:互聯網
上載者:User

該介面實現了序列化,聲明為 public interface Key extends Serializable

Key 是所有密鑰的頂層介面。它定義了供所有金鑰組象共用的功能。所有的密鑰都具有三個特徵:

①、演算法

這是該密鑰的密鑰演算法。密鑰演算法通常是加密或不對稱操作演算法(如 DSA 或 RSA),它們將和那些演算法及相關的演算法(例如 MD5 和 RSA,SHA-1 和 RSA、Raw DSA 等等)一起使用。用 getAlgorithm 方法擷取密鑰演算法的名稱。

②、編碼形式

這是密鑰的外部編碼形式,在 JAVA 虛擬機器之外需要密鑰的標準表示形式時以及將密鑰傳輸到其他某些部分時使用。密鑰根據標準格式(如 X.509 SubjectPublicKeyInfo 或 PKCS#8)編碼,使用 getEncoded 方法返回。註:ASN.1 類型 SubjectPublicKeyInfo 的文法定義如下:

複製代碼 代碼如下:

SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, subjectPublicKey BIT STRING }
AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL }

③、格式

這是已編碼密鑰的格式的名稱。它由 getFormat 方法返回。

密鑰通常通過金鑰產生器、認證或用來管理密鑰的各種 Identity 類來擷取。密鑰也可以通過使用密鑰工廠(請參見 KeyFactory)從密鑰規範(基礎密鑰材料的透明表示形式)擷取。

密鑰應該使用 KeyRep 作為其序列化的表示形式。注意,序列化的 Key 可能包含不應該在不可信任的環境中顯示的敏感資訊。有關更多資訊,請參見序列化規範的安全附錄。

1、欄位:
static final long serialVersionUID    設定為指示與以前的類版本序列化相容的類指紋。 2、方法詳細:

①String getAlgorithm()    返回此密鑰的標準演算法名稱。例如,"DSA" 指示此密鑰是一個 DSA 密鑰。

②String getFormat()         返回此密鑰的基本編碼格式,如果此密鑰不支援編碼,則返回 null。如果存在此密鑰的 ASN.1 規範,則根據合適的 ASN.1 資料格式命名基本編碼格式。例如,公開金鑰的 ASN.1 資料格式名稱是 SubjectPublicKeyInfo(由 X.509 標準定義);在這種情況下,返回的格式為 "X.509"。類似地,私密金鑰的 ASN.1 資料格式名稱是 PrivateKeyInfo(由 PKCS #8 標準定義);在這種情況下,返回的格式為 "PKCS#8"。

③byte[] getEncoded()   返回基本編碼格式的密鑰,如果此密鑰不支援編碼,則返回 null。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.