[Token]JWT 实战:PyJWT的基本使用

PyJwt使用 介绍 官网介绍https://jwt.io/introduction/ 什么是JSON Web令牌? JSON Web令牌(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑而独立的方法,用于在各方之间安全地将信息作为JSON对象传输。由于此信息是经过数字签名的,因此可以被验证和信任。可以使用秘密(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对对JWT进行签名。 尽管可以对JWT进行加密以提供双方之间的保密性,但我们将重点关注已签名的令牌。签名的令牌可以验证其中包含的声明的完整性,而加密 阅读详情

在这里插入图片描述

​ 看完这篇你会知道:Token 怎么签发、怎么验证、过期怎么处理、被篡改了会怎样。

准备工作

1. 安装库

​ 只需要一个库:

pip install PyJWT

​ 注意包名是 PyJWT,不是 jwt(有个同名的老包,会冲突)。导入的时候用 import jwt。

2. 生成密钥

​ 还需要一个密钥。JWT 的安全性全靠这个密钥,谁拿到它,谁就能伪造任意 Token。所以密钥必须足够长、足够随机、不能写在代码里。

​ 生成方式很简单,用 Python 标准库或命令行都行:

import secrets
secret_key = secrets.token_hex(32)  # 32字节-> 64 个十六进制字符,256 bit

​ 为什么参数写 32,出来却是 64 个字符?因为 token_hex 先生成指定数量的随机字节,再把每个字节转成两位十六进制:

secrets.token_hex(32) 的参数 32 是字节数(bytes)

token_hex 的流程:先生成 32个随机字节,然后把每个字节转成两位十六进制字符。所以 32 字节= 64个十六进制字符,即256 bit。

​ 一个字节的取值范围是 0~255,刚好用两位十六进制(00~ff)表示。所以 32 字节展开后就是 64 个字符,信息量是 32 × 8 = 256 bit,这个长度对 HS256 签名来说绰绰有余。
在这里插入图片描述

  • 或者使用openssl

    openssl rand -hex 32
    

​ 生成之后放到环境变量里,代码通过 os.environ 读取。

一、第一步:签发一个 Token

​ 先做最简单的事,把用户信息打包成一个 JWT:

import jwt
import secrets

# 服务器的密钥,只有服务器知道
SECRET_KEY = secrets.token_hex(32)

# 用户信息(Payload)
payload = {
    "user_id": 123,
    "name": "zhangsan",
    "role": "user"
}

# 签发 Token
token = jwt.encode(payload, SECRET_KEY, algorithm="HS256")
print(token)

​ 运行结果是一串用点号分隔的字符串:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoxMjMsIm5hbWUiOiJ6aGFuZ3NhbiIsInJvbGUiOiJ1c2VyIn0.S7SMJTQKubOha1ItdBr3G5Nxb3BKwGPTFWxtTKPs3Ac

​ JWT各部分组成解释如下:

在这里插入图片描述

1.1 jwt.encode()

​ jwt.encode 做了三件事:构建 Header、对 Payload 做 Base64 编码、用密钥生成 Signature。

在这里插入图片描述

​ 三步就像一条流水线:

  • 第一格 PyJWT 自动填好算法和类型生成 Header,不需要你手动构造;
  • 第二格把你传入的 payload 字典做 Base64url 编码,变成字符串,注意是编码不是加密,谁都能解回来;
  • 第三格才是安全的关键,用密钥对前两段的内容做 HMAC-SHA256 运算生成签名。最终三段用点号拼接,就是你在终端里看到的那串 Token。

1.2 手工验证

​ 自己手动编码一遍就知道了。

payload = {"user_id": 123, "name": "zhangsan", "role": "user"}
(1)将字典变形

​ json.dumps() 把字典变成 JSON 字符串,.encode() 再把字符串变成 bytes。因为base64 只认 bytes,所以这两步缺一不可。

import json
json.dumps(payload).encode()

​ 转换后的内容为:

b'{"user_id": 123, "name": "zhangsan", "role": "user"}'
(2) base64编码
import base64
encoded = base64.urlsafe_b64encode(json.dumps(payload).encode()).rstrip(b"=")
print(encoded.decode())
# eyJ1c2VyX2lkIjogMTIzLCAibmFtZSI6ICJ6aGFuZ3NhbiIsICJyb2xlIjogInVzZXIifQ

  • rstrip(b"=") 是因为 JWT 规范要求去掉 Base64 末尾的填充符,所以 Token 里看不到 =,解码时补回来就行。如果不使用这个方法对右侧的=进行去除,编码后的结果如下:

    b'eyJ1c2VyX2lkIjogMTIzLCAibmFtZSI6ICJ6aGFuZ3NhbiIsICJyb2xlIjogInVzZXIifQ=='
    
    
  • 使用 urlsafe_b64encode 而不是普通的 b64encode。区别是把 + 换成 -、/ 换成 _,这样 Token 放在 URL 和 HTTP Header 里不会被转义。

  • 最后,encoded 是 bytes 类型(b"eyJ1c2Vy..."),.decode() 把它转成普通字符串"eyJ1c2Vy...",这样 print 输出时不会带 b'...'前缀。这里只是为了打印好看,和JWT过程无关。

  • 如果想要和JWT最终Token里用点好分隔的中间段完全一致,还需要进行额外的处理。

    encoded = base64.urlsafe_b64encode(
        json.dumps(payload, separators=(",", ":")).encode()
    ).rstrip(b"=")
    
    

    separators=(",", ":") 不能少。json.dumps 默认会在冒号和逗号后加空格("user_id": 123),而 PyJWT 用的是紧凑格式("user_id":123,无空格)。JSON 字符串不同,Base64 结果自然不同。少了这个参数,编出来的就和 Token 里的对不上。

    eyJ1c2VyX2lkIjoxMjMsIm5hbWUiOiJ6aGFuZ3NhbiIsInJvbGUiOiJ1c2VyIn0
    
    
(3) base 64解码

​ 反过来也能解回来,urlsafe_b64decode() 是 Base64 解码,把编码后的字符串还原成原始 JSON。

decoded = base64.urlsafe_b64decode(encoded + b"==")
print(json.loads(decoded))
# {'user_id': 123, 'name': 'zhangsan', 'role': 'user'}

​ 所以 Payload 这段真的就是"裸着的",任何人拿到 Token 都能解出里面写了什么。安全靠的不是藏,而是第三步的签名。只能看,但是不能改。

二、第二步:验证并解析 Token

​ 服务器收到客户端带来的 Token,需要验签并取出用户信息:

# 验签 + 解析
data = jwt.decode(token, SECRET_KEY, algorithms=["HS256"])
print(data)

{'user_id': 123, 'name': 'zhangsan', 'role': 'user'}

​ jwt.decode 做的事:用密钥重新算一次签名,和 Token 里的 Signature 比对。对得上就返回 Payload 内容,对不上就抛异常。

​ 注意 algorithms 参数是列表,而且必须显式传。这是一个安全设计,防止攻击者在 Header 里把算法改成 none 绕过签名。

三、第三步:看看篡改会怎样

​ 改了 Payload 但没有密钥,签名就对不上,我们可以验证一下。

​ 思路很简单:Token 是三段用点号拼接的字符串,Payload 那段只是 Base64 编码,谁都能解开。

​ 那可以试试解开、改掉、再拼回去,能不能骗过服务器?

3.1 正常签名

​ 先签一个正常的 Token:

import jwt

SECRET_KEY = "my-secret-key"

payload = {
        "user_id": "Alen",
        "role": "user",
        "age": 18
}

token = jwt.encode(payload, SECRET_KEY, algorithm="HS256")

此时的token为:

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiQWxlbiIsInJvbGUiOiJ1c2VyIiwiYWdlIjoxOH0.PeZwOEdZKB3PLXgOepzQdQBm7s0LhWWIrfJdmxGtdZo

3.2 篡改信息

​ 然后,我们模拟攻击者的操作。把 Token 拆开,解码中间那段 Payload,把 role 从 user 改成 admin:

def fake_payload(token):
    parts = token.split(".")
    payload_bytes = base64.urlsafe_b64decode(parts[1] + "==")
    payload = json.loads(payload_bytes)
    print(f"原始 Payload: {payload}")

    payload["role"] = "admin"
    faked_payload = base64.urlsafe_b64encode(
        json.dumps(payload).encode()
    ).rstrip(b"=").decode()
    return faked_payload
  
faked_payload = fake_payload(token)

​ 关键一步:把篡改后的 Payload 塞回去,但 Signature 还是原来的。因为攻击者不知道密钥,没法重新签名:

parts = token.split(".")
fake_token = f"{parts[0]}.{faked_payload}.{parts[2]}"

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjogIkFsZW4iLCAicm9sZSI6ICJhZG1pbiIsICJhZ2UiOiAxOH0.PeZwOEdZKB3PLXgOepzQdQBm7s0LhWWIrfJdmxGtdZo

​ 篡改后的token虽然前两段和原先的token一样,但是signature部分不同。

3.3 验签

​ 拿这个伪造的 Token 去验签:

try:
    data = jwt.decode(fake_token, SECRET_KEY, algorithms=["HS256"])
    print(f"验签通过: {data}")
except jwt.InvalidSignatureError:
    print("验签失败!Token 被篡改了")

验签失败!Token 被篡改了

​ 服务器拿密钥对新的 Payload 重算了一遍签名,发现跟 Token 里带的 Signature 对不上,直接拒绝。Payload 是"明文"没错,但签名把它锁死了,只能看,不能改。

四、第四步:加上过期时间

​ 真实场景中 Token 不能永远有效。JWT 用 exp(expiration)字段控制过期。

4.1 设置过期时间

import jwt
from datetime import datetime, timedelta, timezone

SECRET_KEY = "my-secret-key"

payload = {
    "user_id": 123,
    "name": "zhangsan",
    "exp": datetime.now(timezone.utc) + timedelta(hours=2)  # 2小时后过期
}

token = jwt.encode(payload, SECRET_KEY, algorithm="HS256")

  • exp 是 JWT 的标准字段,PyJWT 会自动处理:验签时如果发现当前时间超过了 exp,直接抛 ExpiredSignatureError。

  • datetime.now(timezone.utc) 拿到的是当前的 UTC 时间,一个精确到微秒的时间点对象。参数 timezone.utc 不能省,省了拿到的是本地时间,服务器部署在不同时区就会出 bug。

  • timedelta 是"时间差",表示一段持续时间而不是某个时间点。timedelta(hours=2) 就是"2 小时"这个时间长度,timedelta(seconds=1) 就是"1 秒"。

    两者相加减就是普通的时间算术:

from datetime import datetime, timedelta, timezone

now = datetime.now(timezone.utc)
print(f"now = {now}")                           
print(f"2 hours later = {now + timedelta(hours=2)}")
print(f"1 second before = {now - timedelta(seconds=1)}") 

now = 2026-03-26 01:29:59.696712+00:00
2 hours later = 2026-03-26 03:29:59.696712+00:00
1 second before = 2026-03-26 01:29:58.696712+00:00

​ 所以 exp 那行做的事很直白:拿到现在的时间,往后加 2 小时,就是过期时间。PyJWT 收到这个 datetime 对象后,会自动把它转成 Unix 时间戳(一个整数)写进 Token 里。验签的时候再用 datetime.now(timezone.utc) 取当前时间和 exp 比较,超过了就抛异常,没超过就放行。

4.2 模拟过期情况

# 模拟过期的情况
expired_payload = {
    "user_id": 123,
    "exp": datetime.now(timezone.utc) - timedelta(seconds=1)  # 1秒前已过期
}
expired_token = jwt.encode(expired_payload, SECRET_KEY, algorithm="HS256")

try:
    jwt.decode(expired_token, SECRET_KEY, algorithms=["HS256"])
except jwt.ExpiredSignatureError:
    print("Token 已过期,请重新登录")

Token 已过期,请重新登录

​ 注意,这里不需要自己写时间判断逻辑,PyJWT 内置处理了。

五、和理论篇的对照

理论概念对应代码
Header + Payload + Signaturejwt.encode() 自动构建三段
服务器用密钥签名SECRET_KEY 参数
验签:重算签名并比对jwt.decode() 自动完成
Payload 可以被看到但不能被改篡改实验:改了 Payload,验签失败
Token 过期机制exp 字段 + ExpiredSignatureError

​ 理论和代码一一对应,没有黑盒。JWT 的"魔法"拆开看就是:Base64 编码 + HMAC 签名 + JSON,全是基础工具的组合。

pyjwt,一个强大的 Python JWT解析校验库! JSON Web Tokens(JWT)是一种用于安全传输信息的开放标准(RFC 7519),它可以在网络应用之间传递声明。PyJWT是Python中用于创建、解析和验证JWT的库,它提供了丰富的功能和灵活性,能够轻松地在Python应用程序中实现JWT的各种功能。本文将深入探讨PyJWT库的各个方面,包括基本概念、安装、创建、解析和验证JWT,以及高级功能和实际应用场景。 阅读详情

相关推荐

python中jwt的使用

JWT是什么? JWT是json web token的缩写,一种基于token的json格式web认证方法,说白了就是一个很长的字符串 JWT原理是什么? 基本的原理是,第一次认证通过用户名密码,服务端签发一个json格式的token。后续客户端的请求都携带这个token,服务端仅需要解析这个token,来判别客户端的身份和合法性 JWT的作用和特点 由于http协议是无状态的,所以客户...

qq_31466841的博客 3096

Python用户认证JWT——PyJWT

PyJWT是Python编解码JWT的库。JWT是JSON Web Token,基于RFC7519,用于跨域认证 ,便于服务器集群认证。服务器认证后,生成一个JWT返回客户端,之后客户端与服务器通信都要发回这个 JSON,用于身份认证。

XerCis的博客 5174

Python JWT鉴权实战:PyJWT原理、Token续签与安全防御

在前后端分离与微服务架构中,无状态认证已成为API设计的基石。Token机制将用户身份从服务端存储转移到客户端持有,通过签名保证数据完整性。JWT作为最流行的Token实现规范,结合Python生态中的PyJWT库,提供了从编码、解码到过期校验的完整方案。理解JWT的三段结构与签名原理,是保障系统安全的第一步。本文从PyJWT的基础用法出发,深入解析登录鉴权、滑动续签、双Token机制、密钥轮换等工程实践,并剖析算法混淆、弱密钥爆破、Payload信息泄露等常见攻击手法与防御措施,帮助开发者构建既高效又安全

weixin_32247165的博客 224

PyJWT 详解

1.首先,我们需要先了解 JWT 的概念,所以我们先看pyjwt的官网 https://jwt.io/ 2.对于官方 JWT 有两篇博文写的不错分别如下: https://blog.youkuaiyun.com/qq_15766181/article/details/80707923 https://blog.youkuaiyun.com/u011277123/article/details/78918390 ...

愿你饱经冷暖,仍保纯真 1万+

JWT鉴权原理与PyJWT实战:从签名算法到Token续签与安全防护

在Web应用与微服务架构中,身份认证与无状态鉴权是保障接口安全的核心环节。传统Session方案依赖服务端存储,而JWT(JSON Web Token)作为开放标准,将用户状态封装在自包含的Token中,通过签名确保数据完整性与防伪造能力。本文从JWT的Header、Payload、Signature三段结构讲起,剖析HMAC-SHA256与RSA等签名算法的底层原理,并结合PyJWT库演示签发、验证、手动解码等实践操作。针对实际项目中的Token续签难题,介绍了双Token模型、Refresh Token

weixin_34174105的博客 387

Python 详解PyJWT生成Token

jwt 简介 JSON WEB Token(JWT),一种用以产生访问令牌(token)的开源标准;是目前Token鉴权机制下最流行的方案。 PyJWT是一个Python库,官方文档,安装如下: pip install pyjwt jwt 编码 我们参考上图来举个栗子!!! import jwt from datetime import datetime, timedelta payload = { 'exp': datetime.now() + timedelta(minutes=30),

Disany的博客 5941

Django+jwt认证原理,实现登录

前言 带着问题学习是最有目的性的,我们先提出以下几个问题,看看通过这篇博客的讲解,能解决问题吗?什么是JWT? 为什么要用JWT?它有什么优势? JWT的认证流程是怎样的? JWT的工作原理? 我们带着4个问题进入学习1.什么是JWT? JWT全称Json Web Token,JWT 是一种开发的行业标准 RFC 7519 ,用于安全的表示双方之间的声明。目前,JWT广泛应用在系统的用户认证方面,特别是现在前后端分离项目。2.为什么要使用JWT?它有什么优势? 用户登录认证方式分为传统的token登录方式和

hubert39641020的博客 1552

使用JWT生成Token,并实现Token刷新API

一、背景 传统的网站用户认证方式严重依赖于 Cookie 。但 很多 项目是一个前后端分离的项目,我们希望前端界面的实现不受 项目API 的影响,这就要求 用户认证没有 Cookie 时也能进行。其实仔细想想,用户的认证鉴权,无非就是在访问 API 时发送一个能够识别出用户的字符串给服务端,然后服务端基于字符串查找出用户,再判断用户是否有权限使用 API 。这串字符串,我们可以将其称之为 Token。由于 rmon 的所有 API 都是基于 HTTP 协议的,而在 HTTP 协议中有一个 Authoriz

Shallow的博客 6604

【Python】PyJWT:轻松实现 JSON Web Token (JWT) 网络令牌的生成与验证

PyJWT 是一个用 Python 实现的轻量级库,用于处理 JSON Web Token (JWT)。JWT 是一种安全的方式,用来表示双方之间经过签名的令牌,通常用于认证和授权场景。PyJWT 简化了 JWT 的生成和验证过程,使得开发者能够轻松地在 Python 项目中集成 JWT 功能。

Unity打怪升级 3380

Django+JWT实现Token认证

对外提供API不用django rest framework(DRF)就是旁门左道吗? 基于Token的鉴权机制越来越多的用在了项目中,尤其是对于纯后端只对外提供API没有web页面的项目,例如我们通常所讲的前后端分离架构中的纯后端服务,只提供API给前端,前端通过API提供的数据对页面进行渲染展示或增加修改等,我们知道HTTP是一种无状态的协议,也就是说后端服务并不知道是谁发来的请求,那么如...

ops-coffee 4140

Python应用JSON Web Tokens库之pyjwt使用详解

JSON Web Tokens(JWT)是一种用于安全传输信息的开放标准(RFC 7519),它可以在网络应用之间传递声明。PyJWT是Python中用于创建、解析和验证JWT的库,它提供了丰富的功能和灵活性,能够轻松地在Python应用程序中实现JWT的各种功能。本文将深入探讨PyJWT库的各个方面,包括基本概念、安装、创建、解析和验证JWT,以及高级功能和实际应用场景。

Rocky006的博客 850

【Python】PyJWT:Token验证

**JSON Web Token (JWT)** 是一种基于 JSON 格式的轻量级的安全令牌,通常用于身份验证和信息交换。Python 的 [PyJWT](https://pyjwt.readthedocs.io/en/stable/) 是一个流行的库,用于处理 JWT。本文将从零开始,带你逐步学习 PyJWT 的基本用法、原理以及进阶功能。

2303_80346267的博客 2045

四、【Django】基于Jwt的token认证(登录接口)

django 使用jwt token的东西来进行认证

Ataoker的博客 7349

python PyJWT 使用

在程序开发中,用户认证授权是一个绕不过的重难点。以前的开发模式下,cookie 和 session 认证是主流,随着前后端分离的趋势,基于 Token 的认证方式成为主流,而 JWT 是基于 Token 认证方式的一种机制,是实现单点登录认证的一种有效方法 PyJWT 是一个用来编码和解码 JWT(JSON Web Tokens) 的 Python 库,也可以用在 Flask 。,PyJWT 用来...

极客点儿 9618

原形网络(Prototypical Networks)基于PyTorch的实现

我在Jay2coomzz的基础上修改了数据处理方式和evaluation_model()方法,作为初学者若有不当之处恳请大家批评指正,原文链接如下: https://blog.youkuaiyun.com/weixin_38471579/article/details/102631018 数据集和源码链接将放到评论区 文章目录1 数据集一个简单的数据集介绍数据集处理2 搭建网络CNNProtonets 1 数据集 一个简单的数据集介绍 Omniglot数据集一共包含1623 类手写体,每一类中包含20 个样本。其中.

weixin_43872532的博客 6636

告别IMEI!手把手教你用UUID实现Android设备唯一标识(兼容Android 10-13)

本文详细探讨了在Android 10及以上版本中,如何构建合规且高可用的设备唯一标识方案以替代被限制访问的IMEI。文章深入分析了Android设备标识符的演变,并提供了基于UUID/GUID的完整实现策略,包括生成算法、多级持久化存储方案(如MediaStore)、权限处理以及版本兼容性实践,帮助开发者应对Android 10-13的隐私政策变化。

weixin_28339967的博客 574

Python PyJWT库:简化JSON Web Token的生成与验证

PyJWT是一个用于生成和验证JWT的Python库,它实现了JWT标准(RFC 7519),提供了简单而强大的API。PyJWT是一款强大的Python库,为开发者提供了便捷而安全的JSON Web Token(JWT)生成和验证工具。通过深入了解PyJWT的核心概念、基本用法和高级选项,探索了其在实际应用中的广泛应用场景。在用户认证方面,PyJWT使得创建安全的认证系统变得轻而易举。通过生成JWT,用户可以方便地获得令牌,实现简单而高效的身份验证。

涛哥聊Python 5186

【翼型】基于Matlab的NACA翼型气动性能仿真与优化【附源码】

本文详细介绍了如何使用Matlab进行NACA翼型的气动性能仿真与优化。内容涵盖从生成NACA翼型坐标、利用面板法快速估算升阻力,到进阶的粘性流模拟与优化设计入门。通过清晰的代码示例和分步指南,帮助读者掌握基于Matlab的翼型分析与优化流程,为飞行器或叶片设计提供实用工具和方法。

weixin_29032489的博客 408

JWT认证实战

JWT(JSON Web Token)是一种轻量级的、基于 JSON 的开放标准(RFC 7519),用于在各方之间安全地传递信息。JWT 的特点是结构简单、轻量化和跨平台支持,适用于用户身份验证、信息加密以及无状态的 API 访问控制。使用 JWT,可以有效实现无状态的用户认证和授权,简化 Web 和 API 的身份管理流程。为了增强安全性,通常使用 Access Token 和 Refresh Token 的双令牌机制。使用 JWT 时需要处理多种可能的异常。

网络风云的博客 6764

YOLOv12超参数智能优化:基于内置Ray Tune的自动化调优实战指南

购买即可解锁300+YOLO优化文章,并且还有海量深度学习复现项目,价格仅需两杯奶茶的钱,别人有的本专栏也有! 目标检测模型的性能瓶颈往往源于超参数配置不当。传统手动调优方式不仅耗时耗力,且难以找到全局最优解。YOLOv12集成的Ray Tune框架为解决这一难题提供了完整方案,通过分布式异步优化算法,可实现超参数搜索效率的指数级提升。实际测试表明,采用Ray Tune自动调优的YOLOv12模型,在COCO数据集上mAP指标平均提升3.8%,收敛速度加快2.1倍。在VisDrone无人机数据集上的跨域测试

LXY_LOVE36的博客 119

PLC框架-1.3- 汇川PN伺服(3号报文)

本文以汇川IS620F伺服为例,详细介绍了FB_Servo_ToAxis功能块的应用方法。该功能块封装了MC_Home等轴控指令,实现使能、定位、点动、速度模式及回零等功能,支持转矩限制与显示,并具备行程统计和HMI单位自动切换特性。文章从硬件配置(PN网络连接、报文选择)、参数设置(控制模式、电子齿轮比),到软件实现(功能块调用、手动/自动控制逻辑)进行了系统说明,重点展示了绝对/相对定位、速度模式等典型应用场景的程序编写方法,为汇川伺服在Profinet网络下的工程应用提供了完整解决方案。

qq_34047402的博客 756

Python JWT库终极对比:PyJWT vs 其他热门选择的完整指南

在当今的Web开发中,JSON Web Token(JWT)已成为身份验证和授权的标准解决方案。PyJWT作为Python生态中最流行的JWT实现之一,为开发者提供了简单易用的API来处理JSON Web Token。本文将深入对比PyJWT与其他主流Python JWT库,帮助你做出最佳选择。 ## 🎯 为什么选择PyJWT? PyJWT是一个轻量级但功能完整的JSON Web Token

gitblog_00454的博客 1046

SAPGUI excel 导出时遇到的运行时错误:STRING_SIZE_TOO_LARGE

当报表导出需求远超单一 XLSX 文件的物理承载力时,与其在 SAPGUI 中硬拼 2 GB 限制,不如把分页、过滤、流式写入作为设计前提。掌握 ABAP2XLSX 或 CSV + Power Query 等工具链,既能满足审计合规,又能让应用服务器远离的噩梦。祝你在下一次导出海量数据时,既高效又优雅。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 639

PyJWT:Python中处理JWT的实用指南,从入门到实战

JWT是一种基于JSON的开放标准(RFC 7519),用于在各方之间安全传递信息。Header(头部):指定令牌类型和加密算法(如HS256、RS256);Payload(载荷):存储声明(如用户ID、过期时间等);Signature(签名):用密钥对头部和载荷进行加密,确保信息未被篡改。PyJWT的价值在于:简化JWT的生成(encode)、验证(decode)和解析过程;支持多种加密算法(HMAC、RSA、EC等);自动处理过期时间、 issuer 验证等常见场景。JWT支持标准声明(如。

m0_58868237的博客 828

huggingface下载提示huggingface_hub.errors.EntryNotFoundError:404 Client Error: (Request 1D: Root...如何解决?

🏆 本文收录于《全栈Bug调优(实战版)》专栏,致力于分享我在项目实战过程中遇到的各类Bug及其原因,并提供切实有效的解决方案。无论你是初学者还是经验丰富的开发者,本文将为你指引出一条更高效的Bug修复之路,助你早日登顶,迈向财富自由的梦想🚀!同时,欢迎大家关注、收藏、订阅本专栏,更多精彩内容正在持续更新中。让我们一起进步,Up!Up!Up!    备注: 部分问题/难题源自互联网,经过精心筛选和整理,结合数位十多年大厂实战经验资深大佬经验总结所得,数条可行方案供所需之人参考。

**My Coding Family** 1232

FPGA开发中的操作系统

在FPGA开发中,操作系统起着关键的作用,它负责任务管理、资源管理、中断处理和设备驱动程序等功能。在实际的FPGA开发中,可以选择使用现有的操作系统,如MicroC/OS-II、FreeRTOS等,或者根据具体需求自行设计和开发操作系统。在FPGA(可编程逻辑门阵列)开发中,操作系统扮演着关键的角色,为硬件设计师提供了一种有效的方式来管理资源、调度任务并实现系统级功能。本文将介绍FPGA开发中的操作系统概念,并提供一个简单的示例代码来说明如何在FPGA平台上实现一个基本的操作系统。

CqpFsharp的博客 1156
上一篇: 【HTTP协议解读】01小白篇:理解互联网的通信语言HTTP
下一篇: 【JSON小白篇】数据交换的通用语言—JSON
未收敛
博客等级 码龄11年 3309粉丝 163原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

未收敛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值