Titkosítása szöveg az ini-fájl

Titkosítása szöveg az ini-fájl

Van tárolt jelszavak az ini fájlban, de a probléma az, hogy nem titkosítva. Mondd el, hogy az algoritmus lehet titkosított, és később, ha kell megfejteni annak érdekében, hogy a program dolgozni velük?
P.s. Én egy kezdő ezen a téren, hogy ha nem bánod - hogyan tudja megfizethető.

Ha írsz egy hash jelszó helyett - nem szükséges dekódolni, de nem lehet visszaállítani a jelszavát, ha elfelejtené. És ha beavatkozik az algoritmusok - az xor „, és a kezdő valami bonyolultabb jobb nem hozzányúlni, IMHO)

Láthatjuk legalább néhány példa segítségével a hash vagy xor, hogy megértsék a munka értelmében.


const
# XA0; csCryptFirst = 20;
# XA0; csCryptSecond = 230;
# XA0; csCryptHeader = "";

típus
# XA0; ECryptError = osztály (Kivétel);

funkció CryptString (Str: String): String;
var i, clen. integer;
kezdődik
# XA0; clen: = hossz (csCryptHeader);
# XA0; SetLength (Eredmény, Hosszúság (Str) + clen);
# XA0; helyezés (csCryptHeader [1], Eredmény [1], Clen);
# XA0, mert én: = 1 Hosszúság (Str) do
# XA0; kezdődik
# XA0; # XA0; ha i mod 2 = 0, akkor
# XA0; # XA0; Eredmény [i + clen]: = Chr (ORD (Str [i]) XOR csCryptFirst)
# XA0; # XA0; máshol
# XA0; # XA0; Eredmény [i + clen]: = Chr (ORD (Str [i]) XOR csCryptSecond);
# XA0; végén;
végén;

# XA0, mert én: = 1 Hosszúság (Str) -clen do
# XA0; kezdődik
# XA0; # XA0, ha (i) mod 2 = 0, akkor
# XA0; # XA0; Eredmény [i]: = Chr (ORD (Str [i + clen]) XOR csCryptFirst)
# XA0; # XA0; máshol
# XA0; # XA0; Eredmény [i]: = Chr (ORD (Str [i + clen]) XOR csCryptSecond);
# XA0; végén;
végén;

eljárás TForm1.Button1Click (Sender: TObject);
kezdődik
felirata: = (CryptString ( "FBI ügynök"));
végén;

eljárás TForm1.Button2Click (Sender: TObject);
kezdődik
felirata: = (UnCryptString (felirat));
végén;

Akkor, például,
N: = 0
.
N: = N + Ord (S [I]);

N egy hash (aláírás, aláírás) nem számít, milyen, akkor úgy döntött, utad.


> Később, ha kell megfejteni annak érdekében, hogy
> A program tud dolgozni velük?

igen

mert XOR)

Nem tudom - csak vettem egy kész példa, hogy használja

Itt a jelszó bejegyzést a titkosított fájlt:
Ini: = TiniFile.Create (ExtractFilePath (paramstr (0)) + "Settings.ini");
Ini.WriteString ( "Pass", "az első (1)", (CryptString (Edit1.Text)));

De nézd meg a pontosság előre dekódolás:
ha (Edit1.Text = UnCryptString (Ini.ReadString ( "Pass", "az első (1)", "1111"))) akkor kezdődik

Úgy tűnik, hogy mindent helyesen tette, de semmi nem látszik a munka, a jelszó titkosított finom, de amikor megpróbálom beírni, és azt írja, hogy a jelszó nem megfelelő :(

eljárás TForm1.Button1Click (Sender: TObject);
var ini: TIniFile;
kezdődik

ini: = TIniFile.Create (Application.ExeName + "Ini");
ini.WriteString ( "pass", "1", CryptString (Edit1.Text));
végén;

eljárás TForm1.Button2Click (Sender: TObject);
var ini: TIniFile;
kezdődik
ini: = TIniFile.Create (Application.ExeName + "Ini");
ha UnCryptString (ini.ReadString ( "pass", "1", CryptString (Edit1.Text))) = Edit1.Text majd
ShowMessage ( "OK");

és én munkák

Bocsánat, azt hittem, hogy a „másik” ülni, törlöm a hozzászólásokat

A legegyszerűbb lehetőség:
hadd tudják a helyes jelszót automatikusan az elrendezés a latin ábécé, és a jelszó látható csillagokkal. Az üzenet világos?

Ez a függvény egy vonalat, hogy titkosítani kell, és a vonal - gombot.
Visszatér titkosított. Ismételt alkalmazás dekódolja húr. Csak inishek baj.
működnek XorStr (const Str, KeyStr: String): String;
var
# XA0; LN1, Ln, i, n: egész;
# XA0; b: byte;
kezdődik
Ha Str = „”, majd
# XA0; kezdődik
# XA0; Eredmény: = "";
# XA0; exit;
# XA0; end;
Ha KeyStr = „”, majd
# XA0; kezdődik
# XA0; Eredmény: = Str;
# XA0; kilépés;
# XA0; end;

Ln: = hossz (Str);
LN1: = hossz (KeyStr);
SetLength (Eredmény, Ln);
i: = 1 Ln do
# XA0; kezdődik
# XA0; n: = i mod LN1;
# XA0; Ha n = 0, akkor n: = LN1;
# XA0; b: = bájt (Str [i]) XOR Byte (KeyStr [n]);
# XA0; Eredmény [i]: = Char (b);
# XA0; end;
végén;

készen titkosított ini osztály

Memória: 0,76 MB
Idő: 0.045 c

Kapcsolódó cikkek