JWT签名算法

数字签名可保证数据的三个特性:真实性(未被伪造)、完整性(不存在缺失)、不可否认性(确实是由你本人认可并签名)。

数字签名的具体实现,通常是先对数据进行一次 Hash 摘要(SHA1/SHA256/SHA512 等),然后再使用非对称加密算法(RSA/ECDSA 等)的私钥对这个摘要进行加密,这样得到的结果就是原始数据的一个签名。用户在验证数据时,只需要使用公钥解密出 Hash 摘要,然后自己再对数据进行一次同样的摘要,对比两个摘要是否相同即可。

常见签名算法:HS256(HMAC-SHA256) 、RS256(RSA-SHA256) 、ES256(ECDSA-SHA256)

HS256:使用同一个秘钥(secret_key)加密(对称加密),一旦秘钥泄露,就毫无安全性可言,只适合集中式认证。

RS256:使用私钥进行签名,公钥进行验证,公钥泄露无影响,确保私钥安全。RS256 可以将验证委托给其他应用,只要将公钥给他们就行。

ES256:私钥签名,公钥验证,与RS256算法长度,算法速度差不多,签名长度相对短。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值