最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java Jwt庫的簡介及使用詳解

 更新時間:2021年11月09日 16:36:58   作者:oscar999  
JWT 是開放的行業(yè)標準RFC7591,用來實現(xiàn)端到端安全驗證,就是通過一些算法對加密字符串和JSON對象之間進行加解密,下面通過本文給大家介紹Java Jwt庫的簡介及使用,感興趣的朋友一起看看吧

JWT介紹

JWT概念

JWT , 全寫JSON Web Token, 是開放的行業(yè)標準RFC7591,用來實現(xiàn)端到端安全驗證.
簡單來說, 就是通過一些算法對加密字符串和JSON對象之間進行加解密。
JWT加密JSON,保存在客戶端,不需要在服務端保存會話信息。,可以應用在前后端分離的用戶驗證上,后端對前端輸入的用戶信息進行加密產(chǎn)生一個令牌字符串, 前端再次請求時附加此字符串,后端再使用算法解密。

JWT流程:

https://upload-images.jianshu.io/upload_images/4630295-7df0d10fcffe831b.png

JWT的構(gòu)成

JWT字符串: 一段加密的JSON字符串。
包含了三類信息

  • Header頭部: Token類型和加密算法。加密算法常見的有MD5、SHA、HMAC( Hash Message Authentication Code)。
  • PayLoad負載: 存放有效信息,包括

1.標準的聲明,類似開發(fā)語言總的關(guān)鍵字。包括
iss(Issuser) - 簽發(fā)者
sub Subject 面向主體
aud Audience 接收方
exp Expiration time 過期時間戳
nbf Not Before, 開始生效時間戳
iat(Issued at) 簽發(fā)時間
jti(JWT ID): 唯一標識

2.公共的聲明: 一般添加業(yè)務相關(guān)的必要信息,因為可解密,不建議敏感信息。

3.私有的聲明:提供者和消費者共同定義的聲明,Base64對稱解密,不建議敏感信息

  • Signature簽證

簽證信息包括三部分:

  • Base64加密的header
  • Base64加密的payload
  • secret-密鑰

使用header中聲明的加密算法對Header和payload的加密連接字符串進行加鹽secret組合加密。
密鑰保存在服務端,服務端根據(jù)密鑰進行解密驗證。

 JWT與開發(fā)語言

JWT只是一個標準
可以通過不過的開發(fā)語言實現(xiàn),包括Java,.NET, Python,Node Js, JavaScript,Perl, Ruby,Go等。
同一種語言,不同的開發(fā)者提供了多種實現(xiàn)庫,以Java語言為例有java-jwt、?jose4j、nimbus-jose-jwt、jjwt

JWT官網(wǎng)

https://jwt.io/

這個網(wǎng)站提供了在線的基于不同算法的字符串和JSON對象的轉(zhuǎn)換工具,同時也收集了不同語言的多種實現(xiàn)庫。

java-jwt

java-jwt是Java語言中推薦的JWT實現(xiàn)庫,使用Maven導入如下:

		<dependency>
			<groupId>com.auth0</groupId>
			<artifactId>java-jwt</artifactId>
			<version>3.8.3</version>
		</dependency>

產(chǎn)生加密Token

String token = JWT.create()
            .withExpiresAt(newDate(System.currentTimeMillis()))  //設置過期時間
           .withAudience("user1") //設置接受方信息,一般時登錄用戶
          .sign(Algorithm.HMAC256("111111"));  //使用HMAC算法,111111作為密鑰加密

解密Token獲取負載信息并驗證Token是否有效

 String userId = JWT.decode(token).getAudience().get(0);
        Assertions.assertEquals("user1", userId);
        JWTVerifier jwtVerifier = JWT.require(Algorithm.HMAC256("111111")).build();
        jwtVerifier.verify(token);             

到此這篇關(guān)于JWT介紹以及java-jwt的使用的文章就介紹到這了,更多相關(guān)java jwt使用內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA中Web項目控制臺亂碼的問題及解決方法

    IDEA中Web項目控制臺亂碼的問題及解決方法

    這篇文章主要介紹了IDEA中Web項目控制臺亂碼的問題及解決方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-08-08
  • Spring源碼解析之循環(huán)依賴的實現(xiàn)流程

    Spring源碼解析之循環(huán)依賴的實現(xiàn)流程

    這篇文章主要介紹了Spring源碼解析之循環(huán)依賴的實現(xiàn)流程,文章基于Java的相關(guān)內(nèi)容展開循環(huán)依賴的實現(xiàn)流程,需要的小伙伴可以參考一下
    2022-07-07
  • Java實例講解Comparator的使用

    Java實例講解Comparator的使用

    我們先介紹一下comparator,我們后文稱為比較器。比較器實際上是一個實現(xiàn)了comparator interface是一個實例,在Arrays.sort方法我們可以提供這樣一個實例,即使被排序的object沒有實現(xiàn)comparable接口,我們也可以排序了
    2022-11-11
  • Springboot傳參詳解

    Springboot傳參詳解

    這篇文章主要介紹了Springboot傳參的相關(guān)知識,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-11-11
  • SpringBoot整合Mybatis,解決TypeAliases配置失敗的問題

    SpringBoot整合Mybatis,解決TypeAliases配置失敗的問題

    這篇文章主要介紹了SpringBoot整合Mybatis,解決TypeAliases配置失敗的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • apllo開源分布式配置中心詳解

    apllo開源分布式配置中心詳解

    這篇文章主要為大家介紹了apllo開源分布式配置中心部署詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-02-02
  • mac系統(tǒng)如何下載和安裝jdk的三種方式

    mac系統(tǒng)如何下載和安裝jdk的三種方式

    這篇文章主要介紹了mac系統(tǒng)下載和安裝jdk的三種方式,每種方法都有其特點,如安裝來源及可靠性、安裝過程及便捷性、版本管理及切換、環(huán)境配置、jdk默認安裝路徑以及占用空間及資源管理等,需要的朋友可以參考下
    2025-01-01
  • Java高級特性基礎(chǔ)之反射五連問

    Java高級特性基礎(chǔ)之反射五連問

    反射賦予了我們在運行時分析類以及執(zhí)行類中方法的能力。通過反射你可以獲取任意一個類的所有屬性和方法,你還可以調(diào)用這些方法和屬性。本文就來和大家詳細聊聊Java中的反射,感興趣的可以了解一下
    2023-01-01
  • mybatis如何設置useGeneratedKeys=true

    mybatis如何設置useGeneratedKeys=true

    這篇文章主要介紹了mybatis如何設置useGeneratedKeys=true,具有很好的參考價值,希望對大家有所幫助。
    2022-01-01
  • Java實現(xiàn)簡單的銀行管理系統(tǒng)的示例代碼

    Java實現(xiàn)簡單的銀行管理系統(tǒng)的示例代碼

    這篇文章主要介紹了如何利用Java實現(xiàn)簡單的銀行管理系統(tǒng),可以實現(xiàn)存款,取款,查詢等功能,文中的示例代碼講解詳細,感興趣的可以了解一下
    2022-09-09

最新評論

霸州市| 共和县| 红安县| 安泽县| 通州市| 仙居县| 舒兰市| 三都| 仙居县| 宁安市| 喀什市| 若尔盖县| 克什克腾旗| 尚志市| 多伦县| 海丰县| 广水市| 陈巴尔虎旗| 河曲县| 民权县| 石家庄市| 民县| 庆元县| 丰原市| 宝坻区| 平山县| 岢岚县| 道真| 读书| 怀来县| 英吉沙县| 泰和县| 监利县| 贺兰县| 孙吴县| 镶黄旗| 西吉县| 从江县| 新昌县| 民丰县| 徐闻县|