亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Java Jwt庫(kù)的簡(jiǎn)介及使用詳解

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

JWT介紹

JWT概念

JWT , 全寫(xiě)JSON Web Token, 是開(kāi)放的行業(yè)標(biāo)準(zhǔn)RFC7591,用來(lái)實(shí)現(xiàn)端到端安全驗(yàn)證.
簡(jiǎn)單來(lái)說(shuō), 就是通過(guò)一些算法對(duì)加密字符串和JSON對(duì)象之間進(jìn)行加解密。
JWT加密JSON,保存在客戶端,不需要在服務(wù)端保存會(huì)話信息。,可以應(yīng)用在前后端分離的用戶驗(yàn)證上,后端對(duì)前端輸入的用戶信息進(jìn)行加密產(chǎn)生一個(gè)令牌字符串, 前端再次請(qǐng)求時(shí)附加此字符串,后端再使用算法解密。

JWT流程:

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

JWT的構(gòu)成

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

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

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

2.公共的聲明: 一般添加業(yè)務(wù)相關(guān)的必要信息,因?yàn)榭山饷?,不建議敏感信息。

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

  • Signature簽證

簽證信息包括三部分:

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

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

 JWT與開(kāi)發(fā)語(yǔ)言

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

JWT官網(wǎng)

https://jwt.io/

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

java-jwt

java-jwt是Java語(yǔ)言中推薦的JWT實(shí)現(xiàn)庫(kù),使用Maven導(dǎo)入如下:

		<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()))  //設(shè)置過(guò)期時(shí)間
           .withAudience("user1") //設(shè)置接受方信息,一般時(shí)登錄用戶
          .sign(Algorithm.HMAC256("111111"));  //使用HMAC算法,111111作為密鑰加密

解密Token獲取負(fù)載信息并驗(yàn)證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)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java實(shí)現(xiàn)輸入輸出流代碼分享

    java實(shí)現(xiàn)輸入輸出流代碼分享

    這篇文章主要介紹了java實(shí)現(xiàn)輸入輸出流代碼分享的相關(guān)資料,需要的朋友可以參考下
    2015-09-09
  • 解決tomcat發(fā)布工程后,WEB-INF/classes下文件不編譯的問(wèn)題

    解決tomcat發(fā)布工程后,WEB-INF/classes下文件不編譯的問(wèn)題

    這篇文章主要介紹了解決tomcat發(fā)布工程后,WEB-INF/classes下文件不編譯的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • java解析xml之dom解析xml示例分享

    java解析xml之dom解析xml示例分享

    DOM將整個(gè)XML文件加載到內(nèi)存中,并構(gòu)建出節(jié)點(diǎn)樹(shù);應(yīng)用程序可以通過(guò)遍歷節(jié)點(diǎn)樹(shù)的方式來(lái)解析XML文件中的各個(gè)節(jié)點(diǎn)、屬性等信息; 這種方式便于對(duì)XML節(jié)點(diǎn)的添加修改等,而且解析也很方便,然后它比較耗費(fèi)內(nèi)存,解析速度也不快,下面看使用示例吧
    2014-01-01
  • 詳解SpringBoot啟動(dòng)代碼和自動(dòng)裝配源碼分析

    詳解SpringBoot啟動(dòng)代碼和自動(dòng)裝配源碼分析

    這篇文章主要介紹了SpringBoot啟動(dòng)代碼和自動(dòng)裝配源碼分析,使用SpringBoot很簡(jiǎn)單,在主類中添加一個(gè)@SpringBootApplication,以及調(diào)用SpringApplication.run()并傳入主類,本文通過(guò)示例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2022-07-07
  • SpringBoot整合模板引擎過(guò)程代碼實(shí)例

    SpringBoot整合模板引擎過(guò)程代碼實(shí)例

    這篇文章主要介紹了SpringBoot整合模板引擎過(guò)程代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-07-07
  • java通過(guò)ssh連接執(zhí)行shell命令,文件傳輸方式

    java通過(guò)ssh連接執(zhí)行shell命令,文件傳輸方式

    這篇文章主要介紹了java通過(guò)ssh連接執(zhí)行shell命令,文件傳輸方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Spring動(dòng)態(tài)代理實(shí)現(xiàn)日志功能詳解

    Spring動(dòng)態(tài)代理實(shí)現(xiàn)日志功能詳解

    這篇文章主要為大家詳細(xì)介紹了Spring動(dòng)態(tài)代理實(shí)現(xiàn)日志功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • springboot3解決跨域的幾種方式小結(jié)

    springboot3解決跨域的幾種方式小結(jié)

    這篇文章主要介紹了springboot3解決跨域的幾種方式,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的解決跨域有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • Java中List、Set、Map的區(qū)別和實(shí)現(xiàn)方式示例代碼

    Java中List、Set、Map的區(qū)別和實(shí)現(xiàn)方式示例代碼

    這篇文章主要介紹了Java中List、Set、Map的區(qū)別和實(shí)現(xiàn)方式示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-06-06
  • springboot 如何使用jackson來(lái)處理實(shí)體類

    springboot 如何使用jackson來(lái)處理實(shí)體類

    這篇文章主要介紹了springboot使用jackson來(lái)處理實(shí)體類的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-10-10

最新評(píng)論