選單

java-jwt這個庫沒用過吧?

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負載:存放有效資訊,包括

標準的宣告,類似開發語言總的關鍵字。包括

公共的宣告:一般新增業務相關的必要資訊,因為可解密,不建議敏感資訊。

私有的宣告:提供者和消費者共同定義的宣告,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匯入如下:

產生加密Token

解密Token獲取負載資訊並驗證Token是否有效

最近面試BAT,整理一份面試資料《

Java面試BATJ通關手冊

》,覆蓋了Java核心技術、JVM、Java併發、SSM、微服務、資料庫、資料結構等等。

文章有幫助的話,在看,轉發吧。

謝謝支援喲 (*^__^*)