ich hab ne funktion geschrieben die mir nen registrieungsschlüssel für z.b. shareware-programme errechnet.
ich bin auf dem gebiet n ziehmlicher anfänger und hät gern gewusst ob ich da irgendwo nen überflüssigen scheiß drin hab und ob des sicher is und so.
Delphi-Quellcode:
function gen_reg_key(text, passwort:
string; rlen: integer = 200;
minlen: integer = 6; maxlen: integer = 50):
string;
const
zeichen = '
ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
var
i,a,x,y: integer;
procedure gen_str;
var
i:integer;
c: char;
begin
for i:=1
to length(text)
do
begin
c:=chr( ord(text[i])
xor ord(passwort[y]) );
if c <> '
'
then
text[i]:=c;
inc(y);
if y > length(passwort)
then
y:=1;
end;
end;
begin
result:='
';
if (length(text) < minlen)
or (length(text) > maxlen)
then
exit;
if rlen < maxlen
then
rlen:=maxlen;
y:=1;
setlength(result,rlen);
i:=length(text);
for x:=length(result)
downto 1
do
begin
gen_str;
if i+1 > length(text)
then
a:=(ord(text[i]) + ord(text[1]))
div 2
else
a:=(ord(text[i]) + ord(text[i+1]))
div 2;
if a > length(zeichen)
then
a:=a
mod length(zeichen) + 1;
text[i]:=zeichen[a];
result[x]:=zeichen[a];
dec(i);
if i = 0
then
i:=length(text);
end;
end;