Helps in limiting registrations as a form of licensing (1 Viewer)

Mylton

Member
Local time
Today, 00:33
Joined
Aug 3, 2019
Messages
123
Good afternoon

I'm trying to create a way to limit records associated with App license generation.
I know there are examples.
But I managed to implement a search for what I believe to be the motherboard and processor number.
In this routine I remove the letters, concatenate the numbers of both, perform some arimetic operations and apply a SHA 256, leaving only the last 10 numbers.
The login form, when opened, searches for some data invisibly and registers it in tblSistema.
I also created a record limit function and others like add record, register etc.
In Frm_GenerateLicense when we enter the numbers it already provides the key, which must be entered in Frm_System.
The idea would be when we register the license, check whether the key is correct with the generated function and then release the records in the Registration tab.
I'm trying to see the logic to do it....but I can't.

Criticism and suggestions always help us learn and improve.
If anyone can take a look and help, it would be greatly appreciated.

I've attached what I've gotten so far.

Thanks



In my language

Boa tarde

Estou tentando criar uma forma de limitar registros associado a geração de licença do App.
Sei que existem exemplo.
Mas consegui implentar uma busca pelo o que acredito que seja o número da placa mãe e do processador.
Nesta rotina retiro as letras, concateno os numeros de ambos, efetuo umas operações ariméticas e aplico um SHA 256, deixando apenas os 10 últimos números.
O form login ao abrir busca alguns dados de forma invisível e registra na tblSistema.
Também criei uma função de limite de registros e outras como adicionar registro, registrar etc.
No Frm_GenerateLicense quando digitamos os números ele ja fornece a chave, que deverá ser digitada no Frm_System.
A ideia seria quando formos registrar a licença, seja verificado se a chave está correta com a função gerada e depois libere os registros na tabCadastro.
Estou tentado ver a lógica para fazer....mas não consigo.

Críticas e sugestões sempre nos ajudam a aprender e melhorar.
Se alguém puder dar uma olhada e ajudar será bem vindo.

Anexei o que consegui até agora.

Obrigado
 

Attachments

  • Test01.zip
    152.1 KB · Views: 21

The_Doc_Man

Immoderate Moderator
Staff member
Local time
Today, 02:33
Joined
Feb 28, 2001
Messages
27,186
The usual method to limit something in Access tables is to associate a key (indexed) field with No Dups. If you can identify something that would have to be unique and put the appropriate index on it, that would prevent duplication.

However, Access is not one of the more secure apps available. Storing a record in a table opens you up to tampering from a non-Access app that can use DAO recordsets to do updates for which they would have different code that evades or ignores "duplicate key" errors. You might do better to look at using the registry.


 

Mylton

Member
Local time
Today, 00:33
Joined
Aug 3, 2019
Messages
123
I understand.
What I think is that with the logic I used… I think it's difficult to give the same number.
And as we know, access is not that secure.
But it's suitable for what I want.
The numbers on both the motherboard and the processor must be strictly the same, the person must find out which qrimetics used, the digit I chose, the sha256 and how many digits will be used in the final result.
Not to mention that each processor and
motherboard have your number.
As far as I know, they do not change when the machine is formatted.
They only change with the respective part exchange.

What I don't know... It's like replicating all this logic when clicking the Frm_System registry button.
I was even able to clear the registry if I typed anything. But within the logic I thought I couldn't.
I don't know how to register and release the limit imposed on tblCadastro.
 

arnelgp

..forever waiting... waiting for jellybean!
Local time
Today, 15:33
Joined
May 7, 2009
Messages
19,243
maybe i am wrong but for what i know, sha256 is a non-reversable algorithm.
so if you encrypted it with this algorithm, then you just let the system to find out the processor/mother board number, then encrypt it
with sha256. after that compared the encrypted number with the one you have.

also don't put the registration, the machine number to a Local table. user can easily mess with them.

I have difficulty following non-english codes.

there are also many non-english ms access forums out there, you just need to be more patient to find them, like this one:

Microsoft Access - Portugal-a-Programar

language barrier is a disadvantage. finding proper forum means ease in communications and understandings.
 
Last edited:

Mylton

Member
Local time
Today, 00:33
Joined
Aug 3, 2019
Messages
123
maybe i am wrong but for what i know, sha256 is a non-reversable algorithm.
so if you encrypted it with this algorithm, then you just let the system to find out the processor/mother board number, then encrypt it
with sha256. after that compared the encrypted number with the one you have.

also don't put the registration, the machine number to a Local table. user can easily mess with them.

I have difficulty following non-english codes.

there are also many non-english ms access forums out there, you just need to be more patient to find them, like this one:

Microsoft Access - Portugal-a-Programar

language barrier is a disadvantage. finding proper forum means ease in communications and understandings.
good morning
arnelgp
your first paragraph, it seems to me that I did.
Your suggestion is welcome.
I have a doubt about your thinking, how could I
compare the encrypted number with the one I have?
 

arnelgp

..forever waiting... waiting for jellybean!
Local time
Today, 15:33
Joined
May 7, 2009
Messages
19,243
encrypted strings are but strings. you can use Exact compare:

StrComp(string1, string2, vbBinaryCompare)

if ther result is 0 means they are exactly the same.
 

Mylton

Member
Local time
Today, 00:33
Joined
Aug 3, 2019
Messages
123
encrypted strings are but strings. you can use Exact compare:

StrComp(string1, string2, vbBinaryCompare)

if ther result is 0 means they are exactly the same.
OK.
I will study.
if you have any questions or make an error. return.
in case of certain warning.

thanks.
have a good week.
 

Users who are viewing this thread

Top Bottom