Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JWT:what';什么是(目前)最安全的签名算法?_Jwt - Fatal编程技术网

JWT:what';什么是(目前)最安全的签名算法?

JWT:what';什么是(目前)最安全的签名算法?,jwt,Jwt,我正在阅读文档,发现实际上支持的算法是 HS256 HS384 HS512 RS256 RS384 RS512 ES256 ES384 ES512 PS256 PS384 PS512 以下哪项最安全? 我知道双方(客户机和服务器)必须使用相同的算法,因此它必须在客户机和服务器端都得到支持 选择的重点实际上不是安全性,而是使用JWTs的目的——谁可以创建/验证它们,密钥是否共享,算法速度等等。RSA和ES使用公钥加密,因此用于一个受信任方创建可由其他方验证的令牌(但其他方不能自己创建令牌)的情

我正在阅读文档,发现实际上支持的算法是

  • HS256
  • HS384
  • HS512
  • RS256
  • RS384
  • RS512
  • ES256
  • ES384
  • ES512
  • PS256
  • PS384
  • PS512
以下哪项最安全?

我知道双方(客户机和服务器)必须使用相同的算法,因此它必须在客户机和服务器端都得到支持


选择的重点实际上不是安全性,而是使用JWTs的目的——谁可以创建/验证它们,密钥是否共享,算法速度等等。RSA和ES使用公钥加密,因此用于一个受信任方创建可由其他方验证的令牌(但其他方不能自己创建令牌)的情况。HMAC比RSA快得多,但要求签名者和验证者使用相同的密钥(这意味着他们都可以创建令牌)

作为一个真实的例子,我们可以使用一个JWT,它是使用客户机和授权服务器共享的密钥进行HMAC签名的。然而,对于授权服务器发布的JWT令牌来说,HMAC并不是一个合适的算法,因为恶意的客户端应用程序随后可能伪造这些令牌并模拟授权服务器,从而表示客户端授权或ID令牌

使用较大散列的算法在理论上更强(例如HS512与HS256),但在实践中,与其他安全问题相比,破解系统中的JWT算法不太可能成为主要问题


对于加密站点来说,这可能是一个更好的问题,而不是这样,您应该看看那里。例如,请参见和。

谢谢,哈希值越大越好,而哈希值越低越好。此外,HMAC不使用私钥/公钥,而是使用单个密钥。我不知道。请问哪一种使用非对称密钥?只有HSxxx算法使用共享密钥。其他的则使用RSA或EC密钥对。完全同意这个答案您忘了提到由定义的EdDSA算法。