Hey guys, I just finished my first Mac application and I would like to sell it. I would like to create an algorithm to generate and validate serials based on the customer e-mail. Please help me!!!!!
Thanks, but AquaticPrime is really easy to crack. Any other tip please?
Thanks, but AquaticPrime is really easy to crack. Any other tip please?
Unfortunatelly, 0. I would like to be able to write an algorithm myself.
Well one option I have seen in password databases is to use a sha1 hash of different values combined with some salts.
for example:
name: John Smith
organization: Smith Enterprises
email :johnsmith@example.com
hash(name +organization + email + salt) and then turn that into hexadecimal or whatever.
Now you have some way or verifying the different information.
Although this is a very simple one and could be easily cracked, its a simple way of doing it.
Well, this is now exactly what I'm looking for. I would like to be able to generate serial numbers, not files that will validate my apps.
I could be entirely wrong about this, but I believe the reason why these types of authentication schemes aren't used as much is because they are crackable in a way that would allow the cracker the ability to issue perfectly valid serial numbers. Once this happens you have no way to verify real licenses from fake ones and you're totally screwed. As I understand it, the Aquatic Prime-syle approach is designed to prevent this worst-case scenario.
Now you say you can just maintain a database of customer records to cross check against? Well this is going to totally screw over your paying users, because of things like: is this registered to "The English Department", "Mr. Doe" the current chair of the english department, "Ms. Smith" the former chair of the english department, or "Mrs. Robinson" the former "Ms. Smith" recently married to "Mr. Robinson"? You get the idea. This is the kind of implementation nonsense that really ticks off your paying customers (especially Mac users who have zero tolerance for this kind of thing) and will almost certainly cost you more money in sales than trying to lock down your serials.
Look, if you write an app that's even halfway decent it's almost certainly going to get cracked. The reason for this is because crackers enjoy the challenge of trying to solve the puzzle you've created for them--it's a game that they enjoy playing. The more difficult you make it, the more enticing and fun it becomes for them. The most important thing to remember is that these people weren't going to buy your software in the first place. I doubt there's a cracker alive that's said to himself "well I can't crack this app so I guess I'll have to buy it now".
Re-read chown33's comments.
That's true.
But I need to generate and validate serials to be able to sell it.
But I need to generate and validate serials to be able to sell it. OK, it doesn't need to be generated depending of the person's name. I just need to generate numbers and validate them. For example:
123A-234ADF-FSADS3-OWIEU23-DSAS93828-H