title: Simple software authentication for a C# app?
body: <p>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?</p>
  
  <p><strong>Edit:</strong> Actually my public/private keys trick is not going to work at all. Mathematically...</p>