问题描述
我们只是开发一个使用C#winforms的应用程序,有没有什么好的加密方法来帮助我们防止盗版?
我看到一些软件可能需要硬件支持来保护他们的软件,怎么实现呢?
提前感谢!
好的,你在这里混合了几个不同的概念。 b
$ b
加密旨在保持人们不要您的数据。
混淆用于尝试并防止逆向工程代码。
许可用于确保正在使用的副本数量不超过
您将需要研究混淆和软件许可。混淆,因为你会想要防止他们逆向工程你的许可计划复制它或只是绕过它。
从许可角度来看,有一些不同的途径。硬件保护意味着您的应用程序查询某种类型的加密狗可以检索有效的密钥。如果加密狗存在并且密钥很好,那么你的应用程序运行。
软件许可可能会更复杂一些。您通常会使用某种类型的手机主页代码,该代码应该向许可服务器发送加密版本的可读/可键入密钥以进行验证。您将需要添加一些其他机器信息(如硬盘驱动器序列号),以确保该键不被多次激活。
有时激活过程会下载附加文件以使应用运行。我希望给你一个开始。
we just develop a application with C# winforms, is there any good encryption method to help us prevent from piracy ?I saw some software may need hardware support to protect their software, how to implement that ?Thanks in advance !
Okay, you are mixing up a few different concepts here.
Encryption is geared towards keeping people out of your data.
Obfuscation is used to try and prevent reverse engineering your code.
Licensing is used to make sure the number of copies in use does not exceed the number purchased.
You will want to research both obfuscation and software licensing. Obfuscation because you will want to prevent them from reverse engineering your licensing scheme to either duplicate it or simply bypass it.
From a licensing perspective there are a number of different avenues. Hardware protection means that your app queries a dongle of some type to retrieve a valid key. If the dongle is present AND the key is good, then your app runs.
Software licensing can be a bit more complicated. You'll generally have some type of phone home code which should send an encrypted version of the human readable / type-able key to your licensing server to verify it. You'll want to include some type of additional machine information (such as hard drive serial number) in order to make sure the key isn't being activated multiple times for different boxes.
Sometimes the activation process downloads additional files to make the app run. I hope that gives you a start.
这篇关于有没有什么好的方法来加密C#桌面应用程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!