<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          面試官:jwt 是什么?java-jwt 呢?懵逼了。。

          共 1939字,需瀏覽 4分鐘

           ·

          2022-02-22 05:17

          相關(guān)閱讀:2T架構(gòu)師學(xué)習(xí)資料干貨分享

          作者:oscar999

          來源:blog.csdn.net/oscar999/article/details/102728303


          JWT介紹


          JWT概念


          JWT , 全寫JSON Web Token, 是開放的行業(yè)標(biāo)準(zhǔn)RFC7591,用來實(shí)現(xiàn)端到端安全驗(yàn)證.


          簡(jiǎn)單來說, 就是通過一些算法對(duì)加密字符串和JSON對(duì)象之間進(jìn)行加解密。


          JWT加密JSON,保存在客戶端,不需要在服務(wù)端保存會(huì)話信息。,可以應(yīng)用在前后端分離的用戶驗(yàn)證上,后端對(duì)前端輸入的用戶信息進(jìn)行加密產(chǎn)生一個(gè)令牌字符串, 前端再次請(qǐng)求時(shí)附加此字符串,后端再使用算法解密。


          JWT流程


          JWT的構(gòu)成


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



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


          公共的聲明:一般添加業(yè)務(wù)相關(guān)的必要信息,因?yàn)榭山饷埽唤ㄗh敏感信息。


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


          Signature簽證


          簽證信息包括三部分:



          密鑰保存在服務(wù)端,服務(wù)端根據(jù)密鑰進(jìn)行解密驗(yàn)證。


          JWT與開發(fā)語言


          JWT只是一個(gè)標(biāo)準(zhǔn)

          可以通過不過的開發(fā)語言實(shí)現(xiàn),包括Java,.NET, Python,Node Js, JavaScript,Perl, Ruby,Go等。

          同一種語言,不同的開發(fā)者提供了多種實(shí)現(xiàn)庫,以Java語言為例有java-jwt、?jose4j、nimbus-jose-jwt、jjwt


          JWT官網(wǎng)


          https://jwt.io/


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


          java-jwt


          java-jwt是Java語言中推薦的JWT實(shí)現(xiàn)庫,使用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è)置過期時(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);

          -End-


          1、985副教授工資曝光

          2、心態(tài)崩了!稅前2萬4,到手1萬4,年終獎(jiǎng)扣稅方式1月1日起施行~

          3、雷軍做程序員時(shí)寫的博客,很強(qiáng)大!

          4、人臉識(shí)別的時(shí)候,一定要穿上衣服啊!

          5、清華大學(xué):2021 元宇宙研究報(bào)告!

          6、績(jī)效被打3.25B,員工將支付寶告上了法院,判了

          瀏覽 34
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91三级在线 | 欧美成人A片高清免费看 | 黄色三级视频在线观看 | 婷婷在线综合激情 | 亚洲AV无码精品色午夜红一片 |