gpt4 book ai didi

c# - 在 C# 中加密字符串并在 Delphi 中解密

转载 作者:太空狗 更新时间:2023-10-29 22:09:49 24 4
gpt4 key购买 nike

我正在 ASP.Net 中编写一个网络应用程序,它为一个用 Delphi 编写的 Windows 应用程序创建了一个许可证 key 。为简单起见,我将使用电子邮件地址和日期。

我想用 C# 对其进行加密并将该信息通过电子邮件发送给此人,然后当 Windows 应用程序启动时此人输入加密的字符串。

每次 Windows 应用程序启动时,它都会通过解密并与今天的日期进行比较来检查该许可证。

我怎样才能确保 C# 加密在 Delphi 中成功解密?

最佳答案

"the world was full of bad security systems designed by people who read Applied Cryptography"

虽然简单的答案是“使用相同的算法并确保你有相同的 key 和初始向量”,但这个答案只暴露了你将要遇到的真正问题:你将如何保护加密键?和驾照一起邮寄?嵌入到应用程序中?事实是,没有任何协议(protocol)可以在没有信任根的情况下 self 引导,无论是公共(public)可信机构还是共享 secret 。共享 secret 很容易编码,但在实践中完全没用(这意味着 AES、3DES、XDES 或任何其他类似的密码都不是答案),因此您需要一个基于公钥的方案密码学。为此,要为许可证的受益人加密某些内容,您需要所述受益人的公钥,这会使配置变得困难(许可证站点发送公钥,您加密许可证,发送电子邮件等)。最好以明文形式发送许可证,但使用您的私钥签名。然后您的应用程序可以验证许可证上的签名并在未被篡改的情况下使用它。

S-MIME就是这样的方案。 PGP一样好。可以用 C# 和 Delphi 编写您自己的代码,但强烈建议不要这样做。参见 Cryptographic Signatures .

关于c# - 在 C# 中加密字符串并在 Delphi 中解密,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6219203/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com