普通数字签名和JWT中的数字签名的区别

数字签名

数字签名技术是将摘要信息用发送者的私钥加密,与原文一起传送给接受者。接受者只有用发送者的公钥才能解密被加密的摘要信息,然后用HASH函数对接收到的原文产生一个摘要信息,与解密的摘要信息对比。如果相同,则说明收到的信息是完整的,在传输的过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。数字签名是一个加密的过程,数字签名验证是一个解密的过程。

JWT(Java web Token)

JWT本身是为了解决服务端的token存储的问题,为了避免服务端存储大量的token,服务端可以采用只验证不存储的方式。JWT本身包括三部分内容:JWT头(哈希算法) + 有效载荷(JWT签发放,接收方,用户登陆信息)+ 服务端使用私钥对JWT头和有效载荷的两部分的哈希结果再加密也就得到了数字签名。
然后将整体进行发送给客户端,之后客户端再重传回来,服务端就可以重新对JWT头和有效载荷进行签名与收到的签名对比,从而实现验证。
我们可以看到JWT是自己签名并且自己验证,所以不存在普通数据签名模式下的公钥解密过程。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值