我希望使用我的软件的人不能将该应用程序的副本发送给其他人。我想我可以通过这种方式使用私钥/公钥加密:向用户发送一个激活码,我将保存在Web服务器的数据库中。然后,当用户第一次运行应用程序时,它会向服务器发送代码+有关其硬件的一些信息。然后我将获取该信息,因为它将是一个加密的字符串,并使用服务器中的私钥对其进行解密,并将解密的字符串发送回用户。应用程序将存储此字符串,并在每次应用程序运行时使用公钥对其进行加密,并且应用程序将检查它是否与硬件信息+他的代码匹配。但我猜测有一种更简单的方法可以做到这一点。我真的不需要那么多安全性。有什么建议吗?
编辑:实际上我的公钥/私钥技巧根本不起作用。在数学上...
答案 0 :(得分:2)
保护C#应用程序非常困难。我会把一些简单的东西放在一起(用一些独特的识别细节向服务器发送一条消息,如果它不同则发送回“未经授权”的消息)。任何具有良好技能的人都可能打开MSIL并删除授权检查位,所以我不会花太多时间在它上面。
答案 1 :(得分:0)
实际上,创建序列化变量并在程序启动时将其保存在计算机上,因为它的第一次运行,文件将丢失,如果它丢失,然后将其发送到服务器,它是新用户,它将创建序列化文件,之后,如果不是第一次,序列化文件将加载阻止用户界面,隐藏序列化文件很容易,因为微软有很多文件夹,这将更容易,因为用户的交易服务器将是最小的,只会发生一次..它只会在它启动查询时发生,让程序知道它不是第一次打开...
并且计算机的身份是不变的..因为序列化文件可能是唯一的...它取决于你如何让它独一无二......