hmac sha256安全吗_springboot 中使用JWT保护资源安全

  • 什么是JWT

Json Web Token(JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于在各方之间以JSON对象的形式安全地传输信息。此信息可以验证和信任,因为它是数字签名的。jwt可以使用密钥(使用HMAC算法)或使用RSA或ECDSA的公钥/私钥对进行签名。

尽管jwt可以被加密以提供双方之间的保密性,但我们将重点关注签名令牌。签名令牌可以验证其中包含的声明的完整性,而加密令牌则向其他方隐藏这些声明。当使用公钥/私钥对对令牌进行签名时,签名还证明只有持有私钥的一方才是签名方。

  • 什么时候使用JWT

以下是JSON Web Tokens使用的一些场景:

授权:这是使用JWT最常见的场景。一旦用户登录,每个后续请求将包括JWT,允许用户访问该令牌允许的路由、服务和资源。单点登录(Single-Sign-On)是目前广泛使用JWT的一个特性,因为它的开销很小,而且能够轻松地跨不同的域使用。

信息交换:JSON Web Tokens 是一种在各方之间安全传输信息的好方法。因为jwt可以使用公钥/私钥对进行签名,因此可以确保发送者是他们所说的人。另外,由于签名是使用报头和有效负载计算的,所以您还可以验证内容没有被篡改。

  • JWT结构

JSON Web Tokens 由三个部分组成,用点(.)隔开,分别是:

1、Header

2、Payload

3、Signature

如下形式:

xxxx.yyyy.zzzz

Header(头)

头通常由两部分组成:Token的类型(JWT)和 签名算法,如HMAC、SHA256或RSA。

示例:

{  "alg": "HS256",  "typ": "JWT"}

这个JSON会被Base64Url编码,形成JWT的第一部分。

Payload(负载)

Token的第二部分是有效负载,它包含声明。声明是关于实体(通常是用户)和附加数据。有三种类型的声明:注册声明、公共声明和私有声

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值