token令牌常用的四种加密方式

本文介绍了token令牌常用的四种加密方式:1)基础的Base64,仅能防止未授权查看;2)SHA-256散列算法,提供定长、不可逆的安全特性;3)HMAC-SHA256,结合密钥实现数据完整性和身份验证;4)RSA256非对称加密,用于公钥加密和私钥签名。这些技术在确保数据安全方面起着关键作用。
摘要由CSDN通过智能技术生成

1.base64 ‘防君子不防小人’

方法 作用 参数 返回值
b64encode 将输入的参数转化为base64规则的串 预加密的明文,类型为bytes;例:b‘guoxiaonao’ base64对应编码的密文,类型为bytes;例:b’Z3VveGlhb25hbw==’
b64decode 将base64串 解密回 明文 base64密文,类型为bytes;例:b’Z3VveGlhb25hbw==’ 参数对应的明文,类型为bytes;例:b’guoxiaonao’
urlsafe_b64encode 作用同b64encode,但是会将 ‘+‘替换成 ‘-’,将’/‘替换成’_’ 同b64encode 同b64encode
urlsafe_b64decode 作用同b64decode 同b64decode 同b64decode

代码演示:

import base64
#base64加密
s = b'guoxiaonao'
b_s = base6
JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在各方之间安全地传输声明。JWT通常用于身份验证和授权。JWT由三部分组成:头部、载荷和签名。 1. 头部(Header):JWT头部通常由两部分组成:令牌的类型(即JWT)和采用的签名算法,如下所示: ``` { "alg": "HS256", "typ": "JWT" } ``` 其中,alg表示所采用的算法,如HS256表示HMAC SHA-256,而typ表示令牌的类型,即JWT。 2. 载荷(Payload):载荷是JWT的第二部分,也就是存放有效信息的地方。JWT的载荷是一个JSON对象,其中包含了一些声明,如下所示: ``` { "sub": "1234567890", "name": "John Doe", "iat": 1516239022 } ``` 其中,sub表示主题(subject),即JWT所代表的实体;name表示实体的名称;iat表示JWT的签发时间(issued at)。 3. 签名(Signature):签名是JWT的第三部分,用于验证消息的完整性。JWT的签名通常使用HMAC算法或RSA公私钥对,具体方法如下: - 使用Base64编码头部(Header)和载荷(Payload)。 - 将编码后的头部和载荷用.连接起来,生成一个字符串。 - 使用密钥对该字符串进行签名。 - 将签名和原始字符串用.连接起来,生成最终的JWT。 JWT的加密和解密过程如下: 1. JWT的生成过程: - 构造头部(Header)和载荷(Payload)。 - 使用Base64编码头部和载荷,然后将它们用.连接起来,生成一个字符串。 - 使用密钥对该字符串进行签名,生成签名(Signature)。 - 将签名和原始字符串用.连接起来,生成最终的JWT。 2. JWT的验证过程: - 从JWT中分离出头部、载荷和签名。 - 使用Base64解码头部和载荷,然后将它们用.连接起来,生成一个字符串。 - 使用密钥对该字符串进行签名,生成签名。 - 将生成的签名和JWT中的签名进行比较,如果相同,则说明JWT有效,否则说明JWT无效或被篡改。 需要注意的是,JWT的安全性取决于密钥的保密性。如果密钥泄露,那么攻击者就可以轻松地伪造JWT。因此,必须确保密钥的安全性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值