java中的key接口解析
該接口實(shí)現(xiàn)了序列化,聲明為 public interface Key extends Serializable
Key 是所有密鑰的頂層接口。它定義了供所有密鑰對(duì)象共享的功能。所有的密鑰都具有三個(gè)特征:
①、算法
這是該密鑰的密鑰算法。密鑰算法通常是加密或不對(duì)稱(chēng)操作算法(如 DSA 或 RSA),它們將和那些算法及相關(guān)的算法(例如 MD5 和 RSA,SHA-1 和 RSA、Raw DSA 等等)一起使用。用 getAlgorithm 方法獲取密鑰算法的名稱(chēng)。
②、編碼形式
這是密鑰的外部編碼形式,在 Java 虛擬機(jī)之外需要密鑰的標(biāo)準(zhǔn)表示形式時(shí)以及將密鑰傳輸?shù)狡渌承┎糠謺r(shí)使用。密鑰根據(jù)標(biāo)準(zhǔn)格式(如 X.509 SubjectPublicKeyInfo 或 PKCS#8)編碼,使用 getEncoded 方法返回。注:ASN.1 類(lèi)型 SubjectPublicKeyInfo 的語(yǔ)法定義如下:
SubjectPublicKeyInfo ::= SEQUENCE { algorithm AlgorithmIdentifier, subjectPublicKey BIT STRING }
AlgorithmIdentifier ::= SEQUENCE { algorithm OBJECT IDENTIFIER, parameters ANY DEFINED BY algorithm OPTIONAL }
③、格式
這是已編碼密鑰的格式的名稱(chēng)。它由 getFormat 方法返回。
密鑰通常通過(guò)密鑰生成器、證書(shū)或用來(lái)管理密鑰的各種 Identity 類(lèi)來(lái)獲取。密鑰也可以通過(guò)使用密鑰工廠(請(qǐng)參見(jiàn) KeyFactory)從密鑰規(guī)范(基礎(chǔ)密鑰材料的透明表示形式)獲取。
密鑰應(yīng)該使用 KeyRep 作為其序列化的表示形式。注意,序列化的 Key 可能包含不應(yīng)該在不可信任的環(huán)境中顯示的敏感信息。有關(guān)更多信息,請(qǐng)參見(jiàn)序列化規(guī)范的安全附錄。
1、字段:
static final long serialVersionUID 設(shè)置為指示與以前的類(lèi)版本序列化兼容的類(lèi)指紋。 2、方法詳細(xì):
①String getAlgorithm() 返回此密鑰的標(biāo)準(zhǔn)算法名稱(chēng)。例如,"DSA" 指示此密鑰是一個(gè) DSA 密鑰。
②String getFormat() 返回此密鑰的基本編碼格式,如果此密鑰不支持編碼,則返回 null。如果存在此密鑰的 ASN.1 規(guī)范,則根據(jù)合適的 ASN.1 數(shù)據(jù)格式命名基本編碼格式。例如,公鑰的 ASN.1 數(shù)據(jù)格式名稱(chēng)是 SubjectPublicKeyInfo(由 X.509 標(biāo)準(zhǔn)定義);在這種情況下,返回的格式為 "X.509"。類(lèi)似地,私鑰的 ASN.1 數(shù)據(jù)格式名稱(chēng)是 PrivateKeyInfo(由 PKCS #8 標(biāo)準(zhǔn)定義);在這種情況下,返回的格式為 "PKCS#8"。
③byte[] getEncoded() 返回基本編碼格式的密鑰,如果此密鑰不支持編碼,則返回 null。
相關(guān)文章
IntelliJ IDEA 報(bào)錯(cuò):找不到包或者找不到符號(hào)的問(wèn)題及解決方案
這篇文章主要介紹了IntelliJ IDEA 報(bào)錯(cuò):找不到包或者找不到符號(hào)的問(wèn)題及解決方案,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-08-08
SpringBoot配置攔截器實(shí)現(xiàn)過(guò)程詳解
在系統(tǒng)中經(jīng)常需要在處理用戶(hù)請(qǐng)求之前和之后執(zhí)行一些行為,例如檢測(cè)用戶(hù)的權(quán)限,或者將請(qǐng)求的信息記錄到日志中,即平時(shí)所說(shuō)的"權(quán)限檢測(cè)"及"日志記錄",下面這篇文章主要給大家介紹了關(guān)于在SpringBoot項(xiàng)目中整合攔截器的相關(guān)資料,需要的朋友可以參考下2022-10-10
SharedWorkerGlobalScope屬性數(shù)據(jù)共享示例解析
這篇文章主要為大家介紹了SharedWorkerGlobalScope屬性數(shù)據(jù)共享示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-12-12
Java并發(fā)編程——volatile關(guān)鍵字
這篇文章主要介紹了Java并發(fā)編程——volatile關(guān)鍵字的相關(guān)資料,幫助大家更好的理解和學(xué)習(xí)Java并發(fā)編程,感興趣的朋友可以了解下2020-10-10
springboot 微信授權(quán)網(wǎng)頁(yè)登錄操作流程
這篇文章主要介紹了springboot 微信授權(quán)網(wǎng)頁(yè)登錄操作流程,本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Java中BufferedReader與Scanner讀入的區(qū)別詳解
這篇文章主要介紹了Java中BufferedReader與Scanner讀入的區(qū)別詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-10-10
關(guān)于mybatis使用${}時(shí)sql注入的問(wèn)題
這篇文章主要介紹了關(guān)于mybatis使用${}時(shí)sql注入的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-12-12
String與Blob互轉(zhuǎn)和file文件與Blob互轉(zhuǎn)方式
這篇文章主要介紹了String與Blob互轉(zhuǎn)和file文件與Blob互轉(zhuǎn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-05-05

