Algorithm to generate/verify serial numbers

Hi all,
I am looking for an algorithm to generate/check serial numbers…
Do you know any?

We have RegistrationEngineMBS class in MBS Xojo Plugins.

Or you use e.g. ECDHEMBS class in our plugins to make a signature, which can be verified in the app with a public key.

Many years I wrote a test application in Clarion to generate unique registration codes and wrote an arcticle about it for Clarion Magazine. I’ll see if I can transcode it to XOJO. I can post a PDF of my article if anyone wants to attempt to understand Clarion code. It’s not all that different from XOJO.

If you need an online activation system that ties into payment processors for instant delivery, I offer an end-to-end Xojo code licensing system called TPLM. It comprises everything between your software and the payment processor.

It comes in two parts.

One, a desktop DRM module that handles key validation and offers features like online activation and hardware locked licensing.

The second, an online web panel (written in Xojo Web) for managing keys, activations, and handling webhooks from payment processors. Support for FastSpring is included.

For more information about TPLM: Strawberry Software - TPLM: Xojo DRM


I would recommend this one, quite neat and nice to use.

Serial numbers aren’t really a thing any more. They’re too easy to break. Use Tim’s suggestion.

I used to have a scheme with a serial number that unlocked the app. I thought I was pretty much protected by the algorithm, and by the relatively small distribution. How wrong was I. Following a discussion in this forum, I went to some sites that trade serial numbers. Here were my apps.

Since then, I dropped the serial number scheme.

On of my game was cracked long time ago, it is now donationware then I don’t care.
I searched some of my others application with words like “MyApplication crack serial” and found 2 or 3 sites which old version. Which keywords do you use to check? Are there others words than “Crack” and “Serial”?


Thank you Christian,
I did not know this class so, in the meantime, I used the UUIDMBS class in the same way as recommended.