zoukankan      html  css  js  c++  java
  • jwt token Example

    0 Pre

    1. Install Python3
    2. Install PyCrypto
    3. Install PyJWT

    1 token

    1. 由三部分组成 header, payload, sign 并用逗号连接各部分
    2. header和payload用UTF8进行字符集编码
    3. 各部分都由url safe的Base64编码进行字符转换并且去掉末尾的padding用的=(如果存在)
    4. 一般采用 HS256 和 RS256 两种算法, 当然也还有其他的
    5. 一般情况下 header, payload是明文传输,因此不能进行输入敏感信息

    2 coding

    2.1 HS256

    token=jwt.encode({'a':1}, 'key') # 默认 algorithm 为 HS256
    print(token) # output: b'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhIjoxfQ.Z4rGK-v6a2sWAUQdmALR3aYbXZviLr8j26a9ndx_bM4'
    # header: 
    # {
    #  typ: "JWT",
    #  alg: "HS256"
    # }
    payload=jwt.decode(token,'key') # 从header部分自动解析出 algorithm, payload 并用sign部分进行验证
    print(payload) # output: {'a': 1}
    

    2.2 RS256

    import jwt
    from Crypto.PublicKey import RSA
    rsaobj = RSA.generate(1024) # 生成公私钥, 生产位数应该在2048以上
    token = jwt.encode({'a':1}, rsaobj.exportKey(), 'RS256') # 用私钥签名, pem 格式
    print(token)
    payload = jwt.decode(d, rsaobj.publickey().exportKey()) # 用公钥验证, pem 格式
    print(payload)
    

    3 chrome tools

    JWT Analyzer and Inspector

  • 相关阅读:
    7.12.2
    7.12.1
    7.11.8
    循环测试条件前缀和后缀的区别
    7.11.7 两个版本
    7.11.5
    7.12 vowels.c 程序
    7.11 animals.c 程序
    7.6.2 break 语句
    7.10 break.c 程序
  • 原文地址:https://www.cnblogs.com/i2u9/p/jwt-token.html
Copyright © 2011-2022 走看看