亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java Jwt庫的簡介及使用方法

發布時間:2021-11-09 18:45:56 來源:億速云 閱讀:277 作者:柒染 欄目:開發技術

這期內容當中小編將會給大家帶來有關Java Jwt庫的簡介及使用方法,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

JWT介紹

JWT概念

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

JWT流程:

Java Jwt庫的簡介及使用方法

JWT的構成

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

  • Header頭部: Token類型和加密算法。加密算法常見的有MD5、SHA、HMAC( Hash Message Authentication Code)。

  • PayLoad負載: 存放有效信息,包括

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

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

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

  • Signature簽證

簽證信息包括三部分:

  • Base64加密的header

  • Base64加密的payload

  • secret-密鑰

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

 JWT與開發語言

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

JWT官網

https://jwt.io/

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

java-jwt

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

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

產生加密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);

上述就是小編為大家分享的Java Jwt庫的簡介及使用方法了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

金昌市| 六盘水市| 龙里县| 儋州市| 镇坪县| 巴东县| 睢宁县| 嘉义县| 固始县| 都兰县| 通州区| 牙克石市| 蓝田县| 榆社县| 衢州市| 新田县| 遂宁市| 曲靖市| 新绛县| 裕民县| 碌曲县| 云安县| 东方市| 永春县| 多伦县| 萨迦县| 雷州市| 天津市| 开阳县| 阿拉善右旗| 松溪县| 泾川县| 德兴市| 额敏县| 滨州市| 工布江达县| 临朐县| 平定县| 广丰县| 长岛县| 南江县|