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