JWT算法对比测试

业务背景:

项目在解决临时权限的问题,欲引入JWT,故评估对比JWT实现方式之一JWS(RFC文档)的相关签名算法(由JWA规定),指导签名算法选择。

测试代码:

https://github.com/z521598/jwt-compare

性能测试:

测试环境:

操作系统:Mac OS
内存:8GB
CPU core: 2
本地测试只做性能纵向对比,具体耗时取决于具体运行环境

测试结果:
算法循环次数总耗时(ms)平均耗时(ms)
对称
HS2561000021420.21
HS3841000024920.24
HS5121000021530.21
HS25610000059640.059
HS38410000053680.053
HS51210000052100.052
非对称 RSA
RS25610000303423.03
RS38410000883148.83
RS5121000019674819.67
RS2561000002859112.85
RS3841000008582418.58
RS512100000186134418.61
非对称 ECDSA
ES25610000323753.23
ES38410000646466.46
ES51210000862738.62
ES2561000002850972.85
ES3841000006672666.67
ES5121000007646957.64
测试结论:
  1. 对称加密性能由于非对称加密
  2. RS256 RS284 RS512 签名验签时间依次递增,强度依次增大,ES256 ES384 ES512 同理
  3. ES系列算法 加密时间要小于 RS系列算法

长度测试:

测试数据有效长度:

61个字符串

测试结果:
算法header+body长度总长度签名长度
HS25619323643
RS256193535342
ES25619327986

header+body长度不变,因为都是base64编码;相同的签名算法,无论加密多大的数据的签名长度都是一致的。

测试结论:
  1. 对称加密签名长度要小于非对称加密签名长度
  2. RS系列算法签名长度要远大于ES系列签名算法

最终选择:

ES256

转载于:https://www.cnblogs.com/langshiquan/p/10701198.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值