Fórum GeraCodigo #329535

16/09/2006

0

ola pessoal... eu gostaria de fazer o seguinte:

num form tm um edit e um botao

qdo o cara clikar no botao ... gerar um codigo aleatorio,,

digamos o sistema pega a palavra ( bixopreguiça ) e com essa palavra ele gera um codigo ex:

AH390Ik4T2VA3

e depois tm outro form q vai pedir esse codigo,,,, no evento clike do botao desses outro form,,,, ele decifra esse codigo,,,, c na decifra ele axar a palavra ( bixopreguica ) eele libera o programa senaum da erro??

alguem sabe fazer issu?


Output

Output

Responder

Posts

16/09/2006

Dpinho

ola pessoal... eu gostaria de fazer o seguinte: num form tm um edit e um botao qdo o cara clikar no botao ... gerar um codigo aleatorio,, digamos o sistema pega a palavra ( bixopreguiça ) e com essa palavra ele gera um codigo ex: AH390Ik4T2VA3 e depois tm outro form q vai pedir esse codigo,,,, no evento clike do botao desses outro form,,,, ele decifra esse codigo,,,, c na decifra ele axar a palavra ( bixopreguica ) eele libera o programa senaum da erro?? alguem sabe fazer issu?


Melhor seria utilizar uma rotina de criptografica:

[color=red:4dabf69033]function Crypt(Action, Src: String): String;
Label Fim;
var KeyLen : Integer;
KeyPos : Integer;
OffSet : Integer;
Dest, Key : String;
SrcPos : Integer;
SrcAsc : Integer;
TmpSrcAsc : Integer;
Range : Integer;
begin
if (Src = ´´) Then
begin
Result:= ´´;
Goto Fim;
end;
Key :=
´YUQL23KL23DF90WI5E1JAS467NMCXXL6JAOAUWWMCL0AOMM4A4VZYW9KHJUI2347EJHJKDF3424SKL K3LAKDJSL9RTIKJ´;
Dest := ´´;
KeyLen := Length(Key);
KeyPos := 0;
SrcPos := 0;
SrcAsc := 0;
Range := 256;
if (Action = UpperCase(´C´)) then
begin
Randomize;
OffSet := Random(Range);
Dest := Format(´¬1.2x´,[OffSet]);
for SrcPos := 1 to Length(Src) do
begin
Application.ProcessMessages;
SrcAsc := (Ord(Src[SrcPos]) + OffSet) Mod 255;
if KeyPos < KeyLen then KeyPos := KeyPos + 1 else KeyPos := 1;
SrcAsc := SrcAsc Xor Ord(Key[KeyPos]);
Dest := Dest + Format(´¬1.2x´,[SrcAsc]);
OffSet := SrcAsc;
end;
end
Else if (Action = UpperCase(´D´)) then
begin
OffSet := StrToInt(´$´+ copy(Src,1,2));
SrcPos := 3;
repeat
SrcAsc := StrToInt(´$´+ copy(Src,SrcPos,2));
if (KeyPos < KeyLen) Then KeyPos := KeyPos + 1 else KeyPos := 1;
TmpSrcAsc := SrcAsc Xor Ord(Key[KeyPos]);
if TmpSrcAsc <= OffSet then TmpSrcAsc := 255 + TmpSrcAsc - OffSet
else TmpSrcAsc := TmpSrcAsc - OffSet;
Dest := Dest + Chr(TmpSrcAsc);
OffSet := SrcAsc;
SrcPos := SrcPos + 2;
until (SrcPos >= Length(Src));
end;
Result:= Dest;
Fim:
end;

Usa-se C para Criptografar e D para Descriptografar
Ex de Criptografia:
Edit2.text:= Crypt(´C´,Edit1.text);

Ex: de Descriptografia
Edit3.text:= Crypt(´D´,Edit2.text); [/color:4dabf69033]

Veja bem entrei com [color=red:4dabf69033]bixopreguiça[/color:4dabf69033] e saiu [color=blue:4dabf69033]00030E2530C55E92EB72886490[/color:4dabf69033]
Espero que ajude...


Responder

Gostei + 0

16/09/2006

Output

kra,,, desculpe,,, mah axo q naum expliquei direito:
seguinte:

tipow o programa q eu to fazendo, a licenca dele vence todo dia 30 digamos...

entao qdo vence ,,, o programa tinha q travar e gerar um codigo aleatorio....

onde o cliente me passava esse codigo e eu atraves desse codigo gerava outro codigo q liberava o sistema ....

entende,,,

seria tipow o sistema usava o ´BIXOPREGUICA´ como um padrão pra gerar esse codigo aleatorio, e depois eu usava esse codigo gerado atraves do BIXOPREGUIÇA pra gerar outro codigo q libera o sistema...

voce pode me ajudar ?? sera q teria outra forma mais pratica??


Responder

Gostei + 0

16/09/2006

Dpinho

se voce pesquisar no forum sobre este assunto veras muitos topicos referente a segurança de sistemas e sistemas demo, tem um topico meu mesmo onde estou tentando alterar um componente open source para esta finalidade. com este componente tu pode travar e gera codigo de trava por mês, dia, periodo.
So estou enfrentando problema para buscar o serial do HD e da placa mãe para evitar que meu cliente instale o programa em outro micro. poderia dar uma olhada nos topicos e se estiver afim de me ajudar a desenvolver este componente seria legal.


Responder

Gostei + 0

19/09/2006

Raserafim

DPinho, dá uma olhada neste tópico:

http://forum.clubedelphi.net/viewtopic.php?t=80777


Responder

Gostei + 0

19/09/2006

Dpinho

DPinho, dá uma olhada neste tópico: http://forum.clubedelphi.net/viewtopic.php?t=80777


Amigo é justamente o que não quero, somente o numero serial da partição. Conseguir nos topicos um codigo postato pelo Vinicius2k que retornar o serial de fabrica.
Estava vendo o componente TmxProtector e ele ler o serial da partição, quero alterar a linha que retorna este serial para que ele possa ler o serial de fabrica e algum dando da placa mãe

Veja esta função do componente retornar o serial da partição:

[color=red:b358662c84]Function TmxProtector.GetHardwareID: String;
Var
TempStr: String;
Begin
TempStr := InternalGetHardwareID;
If TempStr <> ´´ Then
Result := Format( ´¬s-¬s-¬s-¬s´, [ Copy( TempStr, 1, 4 ), Copy( TempStr, 5, 4 ), Copy( TempStr, 9, 4 ), Copy( TempStr, 13, 4 ) ] ) Else
Result := ´´;
End;[/color:b358662c84]


Preciso mudar para retornar o serial de fabrica do hd e alguma informação da bios. Assim se o hd for formatado o cliente de meu sistema pode continuar a utilizar o mesmo serial anterior, mas caso ele troque de hd ou bios tera que entrar em contato comigo para adquirir outro serial.


Responder

Gostei + 0

19/09/2006

Marco Salles

desculpe Dpinho... Não entendi nada do que postaste

[b:a392821acd]raserafim escreveu[/b:a392821acd]
DPinho, dá uma olhada neste tópico: http://forum.clubedelphi.net/viewtopic.php?t=80777


voce sisse que não quer :

[b:a392821acd]Dpinho Escreveu[/b:a392821acd]
Amigo é justamente o que não quero


e logo a seguir voce diz:

[b:a392821acd]Dpinho Escreveu[/b:a392821acd]
Conseguir nos topicos um codigo postato pelo Vinicius2k que retornar o serial de fabrica.


Afinal . O Codigo do Vinicius retorna ou não retorna o Seria da fabrica ???

Ate o momento , <este topico ja tem bastante tempo que fora postado >, acredito que dependendo do tipo de Hd , esta função seria a mesma , formatando ou não o Hd...
Mas voce disse que lhe serve e depois disse que não lhe serve ????
Fiquei sem entender.


Responder

Gostei + 0

19/09/2006

Dpinho

viu a rotina que postei?

o que preciso e alterar ela para retornar o numero de fabrica do hd, como na rotina que o Vinicius postou, so não estou sabendo como alterar o componente

Ele retorna o numero da partição, quero alterar para retornar o serial de fabrica


Responder

Gostei + 0

19/09/2006

Marco Salles

e porque voce não usa a função do vinicius ???

não funciona por acaso ????


Responder

Gostei + 0

19/09/2006

Dpinho

ja tentei alterar utilizando ela, mas não deu certo


Responder

Gostei + 0

19/09/2006

Mahdak

gerando o código....

procedure TGera.Btn_GeraClick(Sender: TObject);

var
i:integer;
const
str=´1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ´;
max=6;
begin

  // string de geração
  Edit_str.Text := ´BIXOPREGUICA´;

  // random
  Edit_Gera.Text := ´´;
  for i:=1 to max do
  Edit_Gera.Text := Edit_gera.Text+str[random(length(str))+1];

  // Resultado
  Edit_R.text := ´´;
  For i:=1 to length(Edit_str.Text) do
  begin
    Edit_R.text:=Edit_R.text+copy(Edit_str.text,i,1);
    Edit_R.text:=Edit_R.text+copy(Edit_Gera.text,i,1);
  End;

end;



recebendo o código:

procedure TVerifica.Btn_verificaClick(Sender: TObject);
var
i:integer;
const
str=´1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ´;
max=6;
begin

  // string de verificação
  Edit_str.Text := ´BIXOPREGUICA´;

  // random
  Edit_Gera.Text := ´´;
  for i:=1 to max do
  Edit_Gera.Text := Edit_gera.Text+str[random(length(str))+1];

  // Resultado
  Edit_R.text := ´´;
  For i:=1 to length(Edit_str.Text) do
  begin
    Edit_R.text:=Edit_R.text+copy(Edit_str.text,i,1);
    Edit_R.text:=Edit_R.text+copy(Edit_Gera.text,i,1);
  End;

  if edit_Ativa.Text = Edit_R.text then
  ShowMessage(´Código certo.´)

    else
       ShowMessage(´Código Errado.´);
end;


Obs: No form que vai receber o codigo coloque um edit ´edit_Ativa.Text´
e um botao, onde vai estar o código acima.

voce vai gerar o codigo no form que gera o mesmo com o primeiro codigo descrito e colar o codigo gerado no ´edit_ativa´ para a verificação.

OBS: esse procedimento tem alguns problemas, só fiz ele para voce se basear e implementar algo melhor para a sua necessidade

abraços!


Responder

Gostei + 0

20/09/2006

Raserafim

[quote:356da30602]raserafim escreveu: DPinho, dá uma olhada neste tópico: http://forum.clubedelphi.net/viewtopic.php?t=80777



Amigo é justamente o que não quero, somente o numero serial da partição. Conseguir nos topicos um codigo postato pelo Vinicius2k que retornar o serial de fabrica.
Estava vendo o componente TmxProtector e ele ler o serial da partição, quero alterar a linha que retorna este serial para que ele possa ler o serial de fabrica e algum dando da placa mãe
[/quote:356da30602]

justamente o número de fábrica.

no link que postei tem um outro link para vc baixar o código.


Responder

Gostei + 0

20/09/2006

Output

Valeu mahdak,,, era issu msm q eu qria....

mto obrigado pela força


Responder

Gostei + 0

20/09/2006

Output

Valeu mahdak,,, era issu msm q eu qria....

mto obrigado pela força


Responder

Gostei + 0

20/09/2006

Output

Vlw mahdak,,, era issu msm q eu qria ...

obrigado pela dica


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar