问题描述
我想谁使用我的软件不能够发送应用程序的副本给其他人的人。我想我能来是使用公钥/私钥加密是这样的:向用户发送激活code,我会保持在一个数据库中的Web服务器。然后,用户运行该应用程序在第一时间将发送到服务器的code +关于他的一些硬件信息。然后我会采取这一信息,这将是一个加密的字符串,并与服务器的私有密钥进行解密,并发送解密的字符串返回给用户。该应用程序将保存这个字符串,每次都用一个公共密钥加密应用程序运行和应用程序会检查它匹配的硬件信息+他的code。不过,我猜还有一个更简单的方法来做到这一点。我真的不需要那么多的安全性。任何建议?
I want the people who uses my software not to be able to send copies of the app to other people. What I'm thinking I could to is use private/public key encryption this way: send the user an activation code that I would keep in a database in a web server. Then, the first time the user runs the app it would send to the server the code + some info about his hardware. Then I would take that information as it would be an encrypted string and decrypt it with a private key in the server, and send the decrypted string back to the user. The app would store this string and encrypt it with a public key every time the app runs and the app would check that it matches the hardware info + his code. But I'm guessing there is a simpler way to do this. I really don't need that much security. Any suggestion?
编辑:其实我的公钥/私钥招是行不通的。数学...
Actually my public/private keys trick is not going to work at all. Mathematically...
推荐答案
这将是非常困难的,以保护C#应用程序。我会放在一起一些小事(发送消息到服务器的一些独特的识别信息,如果它是不同的发送回一个山寨版的消息)。任何体面的技能,大概就能打开MSIL和切出的授权校验位,所以我不会花太多时间就可以了。
It's going to be very difficult to protect a C# application. I would put together something trivial (send a message to the server with some unique identifying details, if it's different send back an "unauthorized" message). Anyone with decent skills will probably be able to open the MSIL and cut out the authorization check bits, so I wouldn't spend too much time on it.
这篇关于一个C#应用程序简单的软件认证?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!