我正在寻找一种安全的方式来实现我的应用程序的许可证文件,包括标志和功能。我在Asymmetric key
中了解了C#
机制,但RSA
的目的与我的需求略有不同。
我想生成许可证文件:加密密码。应用程序将拥有解密文件的密钥 - 但无法重新加密它。在我检查的每个地方,该示例显示了A方如何生成公钥和私钥并将公钥传递给B方,以便它可以使用它进行加密。它可能存在于两条线之间,但我无法看到它。
我查了一下:Encrypting和Decrypting
我可以找到一种方法来使用我看到的代码来实现它,但我不确定它是否真的很安全。
答案 0 :(得分:1)
您仍然可以使用非对称加密:生成公钥 - 私钥对,使用私钥加密,客户端(您提到的“应用程序”)可以使用公钥对其进行解密。
当然,公钥(以及私钥)也可以用于加密和解密。
但是使用公钥重新加密纯文本会产生与使用私钥加密的密码完全不同的密码。使用相同的密钥解密和重新加密会产生不同的结果,因此它没用。
答案 1 :(得分:0)
dcastro上面说的是绝对正确的,你应该给予他信任。我只想添加它,但还不能发表评论。如果使用我们的私钥加密许可证信息,并使用该应用程序驱逐您的公钥,您将能够解密许可证信息。如果没有私钥,则无法重新加密可以使用公钥解密的不同版本的许可证,而无需使用私钥。
不对称加密就像这样。
使用公钥加密的信息只能使用私钥解密。 使用私钥加密的信息只能使用公钥解密。
现在对于踢球者..您可能希望使用对称算法加密许可证,并使用非对称算法加密解密所需的密钥。这样,许可证数据的长度不受非对称数据的限制,对称密钥可以是客户特定的。
就像我说的那样,给予dcastro信用。