JWT
簡単な紹介
JWT、JSONは軽量スタイルの認可と認証の仕様、ステートレスを有効にする、分散型Webアプリケーションの認証で、JSONウェブトークンを表し、公式ウェブサイト:https://jwt.io
GitHubののJavaクライアント上のJWT:https://github.com/jwtk/jjwt
データフォーマット
3部からなるJWTデータ:
-
ヘッダー:ヘッド、ヘッドは通常、2つの情報を持っています:
-
宣言された型は、ここにJWTです
私たちは、最初の部分を取得するために、データをbase64エンコードを率います
-
-
ペイロード:ペイロードが有効なデータである、一般的に次の情報が含まれています。
-
ユーザ識別情報(base64エンコード、デコードすることができるので、機密情報を格納しないので、ここでのことに注意してください)
-
届出書:時間の問題、有効期限、発行者などの印として
この部分は、データの第2の部分を与えるためにbase64エンコード
-
-
署名:署名、認証情報は、全体のデータです。サービス・キー(秘密)と結合され、一般的なデータの最初の2つのステップは、暗号化アルゴリズムによって生成され、(好ましくは定期的に交換し、漏れません)。これは、全体のデータの整合性と信頼性を確認するために使用しました
生成されたデータ形式:トークン==個々の本人確認書類JWT =
3つのセグメントに分割わかるように、上記のデータは一部であります
JWTの対話の流れ
フローチャート:
翻訳の手順:
-
1、ユーザがログインします
-
2、秘密にトークン応じて生成することにより、認証サービス、
-
3、ブラウザに生成されたトークンバック
-
図4は、各要求は、ユーザのトークンを運びます
-
公開鍵署名を用いて5、JWT通訳サービスは、署名は、決意した後にペイロードから取得したユーザ情報を有効です
-
図6に示すように、要求を処理し、その応答結果を返します
すでに発行されたトークンJWTは、ユーザーのID情報が含まれており、各要求が運ぶので、そのようなサービスでもステートレスレスト規範に完全に準拠してデータベースを照会することなく、店舗の利用者情報を必要としません。
非対称暗号化
暗号化は、情報の符号化及び復号化技術であり、元のコードは(も暗号文として知られている)変換されたコードの形(また、平文として知られている)で読み取り可能な情報を、復号化プロセスは、逆(復号)され、暗号化された暗号化キーポイントでありますアルゴリズム、暗号化アルゴリズムは、次の3つのカテゴリに分けることができます。
-
AESなどの対称暗号化、
-
基本原理:将明文分成N个组,然后使用密钥对各个组进行加密,形成各自的密文,最后把所有的分组密文进行合并,形成最终的密文。
-
优势:算法公开、计算量小、加密速度快、加密效率高
-
缺陷:双方都使用同样密钥,安全性得不到保证
-
-
非对称加密,如RSA
-
基本原理:同时生成两把密钥:私钥和公钥,私钥隐秘保存,公钥可以下发给信任客户端
-
私钥加密,持有私钥或公钥才可以解密
-
公钥加密,持有私钥才可解密
-
-
优点:安全,难以破解
-
缺点:算法比较耗时
-
-
不可逆加密,如MD5,SHA
-
基本原理:加密过程中不需要使用密钥,输入明文后由系统直接经过加密算法处理成密文,这种加密后的数据是无法被解密的,无法根据密文推算出明文。
-
RSA算法历史:
1977年,三位数学家Rivest、Shamir 和 Adleman 设计了一种算法,可以实现非对称加密。这种算法用他们三个人的名字缩写:RSA