c#,如何存储和检查生成的许可证密钥?
我读了很多关于RSA、加密、许可证密钥等的书,但我仍然感到困惑 我们有一个可以由客户在本地安装的web应用程序(他们通常应该选择SaaS版本,但有些人可能不需要) 该应用程序有不同的模块等(相当标准) 我们的后端存储客户数据和许可证/购买的模块,并可通过SSL访问 “客户端”将定期检查已颁发的许可证是否仍然有效 我不清楚的是如何存储许可证密钥和/或数据,如“许可证有效期有多长” 到目前为止,我的想法是:c#,如何存储和检查生成的许可证密钥?,c#,ssl,encryption,cryptography,C#,Ssl,Encryption,Cryptography,我读了很多关于RSA、加密、许可证密钥等的书,但我仍然感到困惑 我们有一个可以由客户在本地安装的web应用程序(他们通常应该选择SaaS版本,但有些人可能不需要) 该应用程序有不同的模块等(相当标准) 我们的后端存储客户数据和许可证/购买的模块,并可通过SSL访问 “客户端”将定期检查已颁发的许可证是否仍然有效 我不清楚的是如何存储许可证密钥和/或数据,如“许可证有效期有多长” 到目前为止,我的想法是: 只需将其保存在表(明文)中,即使用户篡改数据库中的数据,定期的许可证检查也可以确保许可证的
- 只需将其保存在表(明文)中,即使用户篡改数据库中的数据,定期的许可证检查也可以确保许可证的有效性。(用户可能有权访问短时间内不应访问的部件)
- 对其进行加密并保存在表中。这意味着我
- 使用共享密钥
- 使用私钥/公钥:因此必须使用公钥(在客户端上)进行解密,或者将其发送到后端进行解密并将其发送回客户端
- 检查/存储许可证(及其数据)时的最佳做法是什么
我在最后一段中删除了“SSL是否足够?”的问题,因为我意识到这是一个不同的主题。我假设,您在本地拥有许可证文件,并且只在客户端进行检查?您可以执行以下操作:
例如,对于XML,您可以使用谢谢,这意味着创建我自己的私钥/公钥加密实现(例如RSA),对吗?或者我需要一些证书(比如X509)?或者我会/可以/应该使用安装在后端的SSL证书吗?您所说的“您自己的实现”是什么意思?当然.net包含pk加密/签名类(例如RSA),但您需要一个密钥对来使用它们。例如,请参见[这个问题][这是我用一种相当笨拙的方式表达的意思;)我可以将SSL证书与其公钥/私钥一起使用吗?对不起,我不知道您是否可以或如何从证书中导出密钥,以便在这种情况下可用