c# - 如何在 MySQL 中安全地存储序列密钥并与 C# 应用程序交换它们?
问题描述
我编写了一个 C# 应用程序,我想把它交给一些人来测试它。因此,我想用序列号保护我的应用程序。我不知道我的应用程序是否会盈利,所以我不想花 500 美元购买现成的解决方案。由于 .NET C# 应用程序很容易反汇编,甚至使其成为可读的代码,我不想要内置的密钥生成器。我希望我的应用程序与 MySQL 通信,例如,用户在欢迎窗口中输入序列号,应用程序与执行查询的数据库通信,如下所示
“FROM serials SELECT serial WHERE serial = 'user_input'”,然后查看数据库是否有任何结果。但是,我不能限制用户只做这个查询,所以如果有人从代码中获取登录名和密码,他可以知道我数据库中的所有序列。
我知道我可以在服务器上运行一个额外的中间应用程序,它只会连接到 localhost MySQL 并向应用程序返回 YES 或 NO 响应,而不是将 MySQL 凭据存储在用户应用程序中,但是它也非常昂贵,并且需要很多工作。
我该如何解决这个问题?是否有可能只有应用程序和 MySQL 数据库来存储密钥并检查它们的正确性?
解决方案
推荐阅读
- jenkins - Jenkins Job 和 FreestyleJob 的区别
- ios - 如何在 uicollectionview 标题中添加 uicollectionview
- java - 读取 CSV 文件并用 Java 编写 Json 文件
- javascript - Google Drive API Picker v3(2018 年 5 月)窗口消失并给出 .split is not a function 错误
- css - 使用 Z-Index 的图像叠加,但看不到下面的元素
- amazon-web-services - 容错集群队列 - SQS
- oracle - 在更新、插入或删除之前检查触发器中的时间
- java - Jenkins Pipeline Compiler-Warnings 插件声明
- reactjs - React admin-on-rest 添加 X-Total-Count
- dart - 如何在 Flutter TextField 上使用 InputFormatter?