Ver Mensaje Individual
  #3  
Antiguo 28-03-2007
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 26
seoane Va por buen camino
Bueno dec, aquí te dejo una función para comprobar el numero de serie pero sin llegar a generarlo en ningún momento. La función para generarlo sigue siendo la misma que pones en el mensaje #40, y puedes usarla tu para generar los números de serie que le mandes a los clientes.
Código Delphi [-]
function GetNum(var Str: String): Integer;
var
  i: Integer;
begin
  Result:= 0;
  while TryStrToInt(Copy(Str,1,1),i) do
  begin
    Result:= (Result * 10) + i;
    Delete(Str,1,1);
  end;
  Delete(Str,1,1);
end;

function CheckSerial(ABase: Integer; AUsername, ASerial: string): Boolean;
var
  A: Integer;
begin
  Result:= FALSE;
  if (ABase <> 0) and (AUserName <> '') then
  begin
    A:= ABase * Length(AUserName) + Ord(AUserName[1]) * 666;
    Result:= GetNum(ASerial) = A;
    A := ABase * Ord(AUserName[1]) * 123;
    Result:= Result and (GetNum(ASerial)= A);
    A := ABase + (Length(AUserName) * Ord(AUserName[1])) * 6613;
    Result:= Result and (GetNum(ASerial) = A);
  end;
end;
Bueno, ahora ya no aparece el numero de serie en la memoria. Ya solo nos tiene que preocupar que nos parchee el programa algún ruso con mucho tiempo libre .
Responder Con Cita