Tag Info

Hot answers tagged

17

The license generation method isn't really that important, as long as it's non-trivial. The trick is how your client verifies that the license is correct. Let's say you do something like this: BOOL verifyLicense (char* licenseKey) { BOOL result = false; if(strlen(licenseKey) > 128) return false; char* url = (char*)malloc(1024); ...


15

If there is no real need for security, then here is a very fast serial number generator, with a checker: User a counter. Initialize it at 0. When you want a new serial number, increment your counter by 1000; the new counter value is the serial number. The checker works like this: a serial number is valid if it ends with three zeros. Only one of every 1000 ...


4

If you want the cryptographically secure method you won't get around an internet connection to verify the serial. This means that such a protection scheme is better suited for subscription based software than it is for traditional shelf software. With internet connections it's simple (since you use JS, I assume that's the one you want): Someone creates a ...


4

However, once the license key is hashed (with salt) - it becomes very difficult to check if a given key exists in the database - since the salt used will change with each key. Salts are designed to be used when you already have an identifier to look up the corresponding hashed field. For example, you don't look to see if "password" exists in any of the ...


3

OP wrote "it should be very easy to implement (in javascript) and it should be very fast" Its not clear whether "in javascript" refers to the generator or the checker or both, or whether it refers to "javascript in the browser", or some other java/ecmascript implementation (e.g. server-side in the web server). Javascript as an implementation language isn't ...


3

Higher authorities could easily find out about criminal activity - such as drug trafficking and child pornography - being conducted on a laptop simply by hacking into it or somehow seeing the history. No, they find it out from the web history/logs, which is with the internet service provider (verizon, comcast, etc). They don't need access to the ...


1

You need a timestamping service. The license server should track information about the client that ensures that the same client can not request a license more than once. You can use any number of factors for this such as hard drive serial numbers, windows activation codes, etc. When an evaluation license is issued, you can timestamp the key and have the ...


1

I'm not sure what sort of software are you distributing. Are you Selling software to game development/hosting companies? Selling access to software hosted on your servers? If it's 1), have you ever considered using the power of the law to your advantage? Basically sue the pants off any company who uses your software without permission. If it's 2), you ...


1

If all you are trying to do is generate a license key that is hard to replicate then by using the username as part of the input to the hash you are actually going to make the license key weaker, and therefore easier to guess. The username is non-random and therefore decreases the entropy of the resulting license key, and the username can be guessed by the ...


1

Here is an article I find very informative regarding generating secure license keys: How to Generate License Keys Securely It's about using elliptic curve cryptography to generate license keys. The generated keys can be as small as 20 characters and still secure.



Only top voted, non community-wiki answers of a minimum length are eligible