当前位置: 首页 > 知识库问答 >
问题:

JWT使用非对称加密

慎望
2023-03-14

我想问一下,在使用非对称加密时,我们使用客户端的公钥加密数据,因此客户端可以使用他们的私钥解密数据,对吗?

我刚刚找到了使用RSA签署JWT的教程,但我发现它们使用服务器私钥而不是客户端的公钥加密数据,并且服务器的公钥在客户端之间共享。

安全吗?因为如果公钥因为可共享而落入坏人之手,每个人都可以正确解密?

那么,这样签jwt可以吗?

参考:教程1教程2

共有2个答案

单于骁
2023-03-14

在这种情况下,目的不是加密数据以使其他人无法读取它(“机密性”),而是对数据进行签名,以便拥有公钥的其他人可以验证您拥有私钥并且您实际签署了数据。这种情况下的数据是JWT标头和有效负载的哈希值。私钥用于签名,以便只有一个实体——身份验证服务器——可以对JWT进行签名。公钥用于签名验证,以便任何拥有公钥的第三方都可以验证JWT。公钥不能用于创建有效签名。

所以是的,它是安全的!

顾永福
2023-03-14

所以客户端可以使用其私钥解密数据,对吗?

是的,在加密数据的情况下,这是正常的方式。

但在JWTs的情况下,它不是要加密只有接收方应该解密的内容,而是要对令牌签名。

目标是,只有一个实例(例如身份验证服务器或令牌颁发者)可以对令牌进行签名,但每个人都可以使用公钥验证签名。

因为如果公钥因为可共享而落入坏人之手,每个人都可以正确解密它?

公钥不会落入坏人之手,因为它是公开的。所以根据定义,每个人都可以看到它。

令牌的内容(即有效负载)未加密,但仅base64url编码,并且可以由everone读取,例如https://jwt.io.

那么,这样签jwt可以吗?

对呀

 类似资料:
  • 本文向大家介绍Android对称加密与非对称加密,包括了Android对称加密与非对称加密的使用技巧和注意事项,需要的朋友参考一下 凯撒密码 1. 介绍 凯撒密码作为一种最为古老的对称加密体制,在古罗马的时候都已经很流行,他的基本思想是:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3 的时候,所有的字母

  • 主要内容:1.对称加密,2.非对称加密,3.混合加密,4.常见的摘要算法1.对称加密 AES,密钥长度有128/256/192。高级加密标准,是下一代的加密算法标准,速度快,安全级别高; DES:密钥为56, 数据加密标准,速度较快,适用于加密大量数据的场合。 3DES: 密钥为168.是基于DES,对一块数据用三个不同的密钥进行三次加密,强度更高。 IDES: 密钥为128 SM1: 密钥为128 SM4: 密钥为128 RC4, RC5, RC6 DESX 两边用

  • 介绍 对于非对称加密,最常用的就是RSA和DSA,在Hutool中使用AsymmetricCrypto对象来负责加密解密。 非对称加密有公钥和私钥两个概念,私钥自己拥有,不能给别人,公钥公开。根据应用的不同,我们可以选择使用不同的密钥加密: 签名:使用私钥加密,公钥解密。用于让所有公钥所有者验证私钥所有者的身份并且用来防止私钥所有者发布的内容被篡改,但是不用来保证内容不被他人获得。 加密:用公钥加

  • 本文向大家介绍C#对称加密与非对称加密实例,包括了C#对称加密与非对称加密实例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了C#对称加密与非对称加密的原理与实现方法,分享给大家供大家参考。具体分析如下: 一、对称加密(Symmetric Cryptography) 对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secr

  • 我试图创建一个Android应用程序,它可以动态加密数据并将其写入存储。已经实现了没有加密的应用程序,在stackoverflow上查看了100个加密示例/帖子,但无法决定使用哪种方法。 一开始想到使用AES,就在谷歌上搜索它的安全性。每次输入16或32个字符(我希望安全性更好)的密码似乎并不方便。作为一种替代的非对称加密方式,人们想到了。用一个密钥加密,用另一个密钥解密,这样我就可以将用于加密的

  • 我们试图将JWT身份验证ES512非对称密钥集成到我们的Spring微服务体系结构中。quarkus微服务应该用公钥解密令牌,不幸的是,它看起来quarkus默认支持RSA-256。 我如何放置Quarkus与ES512非对称钥匙?