我正在考虑使用带有RSA加密的JSON网络令牌,但我担心这会很慢。我的逻辑背后是TLS使用RSA加密来交换密钥,但之后使用AES加密,因为公钥/私钥解密很慢。
答案 0 :(得分:2)
这听起来像是在走向危险的方向。有几种方法可以实现JWT:
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