【问题标题】:How to encrypt with both the private key and public key [closed]如何同时使用私钥和公钥进行加密 [关闭]
【发布时间】:2016-04-20 06:54:28
【问题描述】:

我有这个 bash 脚本

#generate key
openssl genrsa -out key.pem 2048
openssl rsa -in key.pem -text -noout
#save public key in pub.pem file
openssl rsa -in key.pem -pubout -out pub.pem
openssl rsa -in pub.pem -pubin -text -nout
#encrypt data
openssl rsautl -encrypt -inkey pub.pem -pubin -in license.json -out license_encrypted.json
#decrypt data
openssl rsautl -decrypt -inkey key.pem -in license_encrypted.json

在代码中你可以看到我使用公钥加密文件并使用私钥解密,我需要知道如何使用私钥和公钥进行加密。这可能吗。我应该使用私钥解密还是可以使用公钥解密,这是关于我尝试加密的软件许可证

【问题讨论】:

  • 可能会因为问这个问题而被否决
  • 或者我可以用私钥加密并用公钥解密,许可证持有者将拥有公钥,服务器将拥有私钥
  • 我在另一篇文章中发现了这一点“非对称意味着您不能使用与加密相同的密钥进行解密。代码签名是使用私钥加密的一种情况。然后,代码的接收者可以使用他们的公钥来验证代码是否未更改。”现在更有意义了
  • 唯一的想法是我需要使用许可证信息加密许可证文件,并且客户端需要是唯一允许解密该许可证信息的人
  • 当您想要使用私钥加密时,您通常需要一个具有恢复功能的签名方案 。这可能适用于 DRM/许可证密钥方案。否则,用私钥加密不是有效的加密操作。我认为这个问题不值得-3或-4。我认为您不知道该要求什么,而反对您的人也没有意识到您的要求,因此您得到了我的赞成票以抵消反对票。

标签: bash encryption ssh openssl


【解决方案1】:

我需要知道如何同时使用私钥和公钥进行加密。

这毫无意义。

在公钥密码学中,每一方都有一个由公钥和私钥组成的密钥对。要为某人加密消息,您使用他的公钥;然后他将使用他的私钥来解密消息。

因此,您的客户应该生成一次密钥对(最好是自动完成),然后将他的公钥发送给您,您将使用该公钥加密许可证文件并将其发回给他。

【讨论】:

  • 是的,这是有道理的,在我可以做任何我需要完全理解它的代码之前,我一直在寻找清晰度,谢谢
  • 因此,例如,如果我想自己在 Web 应用程序上生成用于管理许可证的密钥,我将如何进行,基本上客户必须自己生成密钥,或者我可以这样做吗?他们。就像我为它创建了一个许可证附加密钥,因此许可证上的信息被加密,然后他们使用他们的密钥访问该许可证
  • 我真的不想变得复杂,只是想完全理解
  • 是的,客户必须自己生成密钥对,否则您会遇到如何安全地给他私钥的问题。但是你真的需要加密许可证吗?
  • 这是一个要求,许可证告诉人们他们的软件可以做什么或有权做什么,这只是确保客户不能使用系统的任何其他功能的一种方式
猜你喜欢
  • 2013-02-08
  • 2015-08-23
  • 1970-01-01
  • 2023-03-24
  • 2012-04-11
  • 2013-09-21
  • 2017-11-25
  • 2017-01-04
  • 2015-01-25
相关资源
最近更新 更多