JWT RSA加密 - 对于许多请求,这会很慢吗?

时间:2016-03-24 17:57:09

标签: encryption rsa jwt public-key-encryption

我正在考虑使用带有RSA加密的JSON网络令牌,但我担心这会很慢。我的逻辑背后是TLS使用RSA加密来交换密钥,但之后使用AES加密,因为公钥/私钥解密很慢。

2 个答案:

答案 0 :(得分:2)

这听起来像是在走向危险的方向。有几种方法可以实现JWT:

  • HMAC
  • RSA 签名而非加密
  • ECDSA签署

RSA加密和AES都不适合这项工作。 You want authentication, not encryption

如果你想要速度,我会推荐HMAC。具有SHA2族散列函数;例如SHA-256。

答案 1 :(得分:0)

这是Go implementation的基准。 BenchmarkHMACSign/HS256-12 500000 3421 ns/op BenchmarkHMACSign/HS384-12 300000 4014 ns/op BenchmarkHMACSign/HS512-12 300000 4131 ns/op BenchmarkHMACCheck/HS256-12 200000 8737 ns/op BenchmarkHMACCheck/HS384-12 200000 9506 ns/op BenchmarkHMACCheck/HS512-12 200000 9634 ns/op BenchmarkRSASign/1024-bit-12 2000 567073 ns/op BenchmarkRSASign/2048-bit-12 500 2569703 ns/op BenchmarkRSASign/4096-bit-12 100 14835903 ns/op BenchmarkRSACheck/1024-bit-12 50000 35438 ns/op BenchmarkRSACheck/2048-bit-12 20000 75855 ns/op BenchmarkRSACheck/4096-bit-12 10000 204811 ns/op