Ask HN: Is there a good alternative to software registration keys?
3 comments
Can't you rely on your platform's "App Store" functionality like in-app purchases and let the platform deal with it?
I'm trying to avoid dependence on a platform. I want this software to be sovereign...software that stands on its own and can't be strong-armed by any big company (or betrayed by a scandal/exploit).
Doing this without user accounts will make piracy rampant. Someone will figure out your hashing scheme, as you've shipped them the code to check it. Is no user accounts, and no registration server really the way to go?
If so, maybe QR codes, key files?
How about a hash to "correct horse battery stapler" converter? Get a list of 4096 unique words, so 12 bits per word, and make the key three words.
If so, maybe QR codes, key files?
How about a hash to "correct horse battery stapler" converter? Get a list of 4096 unique words, so 12 bits per word, and make the key three words.
Hey thanks! QR codes might work, but I think key files will be too unwieldy for my user base.
Do you mind elaborating on the hash to word concept? I'm not sure I follow.
Do you mind elaborating on the hash to word concept? I'm not sure I follow.
Take a 24-bit key, for ease of example. Split it into three 8-bit sub keys. Make a list of 256 english words. Assign a word to each subkey.
1101 1000 = chair 1101 1011 = gobble 0110 1001 = stealth
Expand the wordlist or total number of words to fit your use case. I coded something simalar to make a xkcd-compliant random password generator. Took maybe a few hundred lines of code. Too much to totally list here, but I'd be happy to go into more detail off HN if you want.
1101 1000 = chair 1101 1011 = gobble 0110 1001 = stealth
Expand the wordlist or total number of words to fit your use case. I coded something simalar to make a xkcd-compliant random password generator. Took maybe a few hundred lines of code. Too much to totally list here, but I'd be happy to go into more detail off HN if you want.
But software keys are unwieldy, not nice to look at, and often users get confused (I've used keys like this in the past and got a lot of support requests).
Anyone got a better approach?
I've considered using images with data embedded and hashing them, using a bitcoin-style seed word approach, but nothing really feels right.