首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我可以用两个私钥进行非对称加密吗?

我可以用两个私钥进行非对称加密吗?
EN

Stack Overflow用户
提问于 2011-04-14 11:49:11
回答 7查看 1.5K关注 0票数 2

根据维基百科(及其他来源),非对称加密总是这样工作的:

  • 甲方有一个公钥和私钥
  • 用甲方的公钥
  • 来加密,甲方用其私钥

解密

但是,我不希望甲方能够加密他们自己的数据,只希望他们能够解密。使用不对称逻辑将导致:

  • 甲方有一个私钥
  • 乙方有一个私钥(这是甲方的公钥)

我们将把它用于某种许可生成/检查。我们的客户端可能不会生成许可证,但是许可证文件必须在客户端可读。

这仍然是不对称加密,还是我应该研究不同的方法?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-04-14 11:58:14

您将私钥保存在保险箱中,并发布您的公钥。创建许可证时,使用私钥对其进行加密。客户端只能使用您的公钥解密它。

如果您希望将您的许可证限制在客户端上,请要求客户端生成他们的密钥,并将他们的公钥发送给您。然后使用他们的公钥加密许可证,然后用私钥对其签名(或再次加密)。

当客户端接收到许可证时,他们必须验证您发送给他们的许可证的签名(或解密)。2.使用自己的私钥解密已验证的数据。

这确保了1.只有您可以向他们发送许可证,2.只有他们可以解密。

票数 2
EN

Stack Overflow用户

发布于 2011-04-14 11:58:14

甲方能够使用公钥加密消息是,绝对没有问题,

只有您可以解密它们(使用您的私钥),而且由于您没有理由这样做,使用嵌入在应用程序中的公钥加密一些东西不会造成任何伤害--只是一堆无用的数据,因为用户已经无法解密了。

对于许可,您只需加密(或签名-这就足够了,然后人们将能够读取许可文件中的限制等,而不是修改它们)您的许可证文件使用您的私钥。然后,应用程序使用嵌入的公钥解密文件(或验证签名)。

用户提取公钥并使用它对自定义许可证文件进行签名,因为只有当您的私钥嵌入应用程序时才能使用它(因为这是解密用公钥加密的东西所必需的密钥)。

但是,他很可能会用一个自定义的公钥来替换您的公钥(其中他也有私钥),然后使用他的私钥对他自己的许可证文件进行签名/加密。不过,这不是密码问题--您只需添加一些防破解/修改措施,就可以更难替换嵌入的公钥。例如,您可以执行一些校验和验证。

票数 3
EN

Stack Overflow用户

发布于 2011-04-14 11:57:51

您通常要做的是在您的侧生成许可证,并使用您的私钥加密它。然后你的客户就可以用你的公钥来读了。这是(非常广泛地说)证书方案(例如在使用HTTPS的安全在线浏览中使用)的工作方式。是的,这绝对是不对称加密。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5662738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档