Krypter.

Tags:    delphi

Hey..

Jeg er begyndt at rode med INI filer.

Dog synes jeg det er lidt irriterende, at man kan gå ind at ændre INI filen..

Er der ikke nogen der kan komme med nogen metoder, at kryptere INI filen på?

På forhånd tak!



8 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 2 karma
Sorter efter stemmer Sorter efter dato
Kan du ikke bare bruge en ganske normal kryptering såsom denne:

procedure TForm1.Button1Click(Sender: TObject);
var
s:String;
t:integer;
begin
s:=memo1.text;
for t:=1 to length(s) do
s[t]:=chr(byte(s[t]) xor 9);
memo1.Text:=s;
end;



Nej selvfølgelig ikke. Så skal koden dekrypteres først. Dette gøres ved præcis den samme funktion.



... Dog synes jeg det er lidt irriterende, at man kan gå ind at ændre INI filen..


Det er ligesom lidt det man bruger en INI fil til.

Hvis du ikke vil have brugeren nemt skal kunne pille i indstillingerne du gemmer, så brug registry istedet.

Hvis det skal være meget svært, så put informationerne i en dll som du loader når programmet starter op.

Kryptering er også en mulighed, men så lad være med at kalde filen for en INI fil, da det signalerer at her kan den erfarne bruger godt gå ind med en tekst editor og stille på skruerne hvis der er behov.
Det vil jo nok gå galt hvis du har krypteret det.



Ej der er nu store fordele hved at bruge INI-filer istedet for registry i nogle sammenhænge - også selvom man ønsker at skjulle instillingerne



Hmm..

Den der kryptering..

Hvordan krypterer den den?



xor mellem 2 bytekoder bit for bit.

koden for 9:00001001
koden for Char ?:87654321

hvis bit 1 er 0 i ? så er resultat bittet:1 eller 0
hvis bit 2 er 0 i ? så er resultat bittet:0 eller 1
hvis bit 3 er 0 i ? så er resultat bittet:0 eller 1
hvis bit 4 er 0 i ? så er resultat bittet:1 eller 0
hvis bit 5 er 0 i ? så er resultat bittet:0 eller 1
hvis bit 6 er 0 i ? så er resultat bittet:0 eller 1
hvis bit 7 er 0 i ? så er resultat bittet:0 eller 1
hvis bit 8 er 0 i ? så er resultat bittet:0 eller 1

så skriver den resultatet tilbage som en char.


man dekryptere på samme måde


hvis du kan engelsk er det bedre forklaret her:
http://www.tech-faq.com/xor-encryption.shtml




Okay..

Men kan programmet godt læse det, hvis det er krypteret?



Okay ;)

Vil det sige, at hvis jeg siger, ved OnCreate

var
string;
t:integer;
begin
s:=memo1.text;
for t:=1 to length(s) do
s[t]:=chr(byte(s[t]) xor 9);
memo1.Text:=s;
end;

og det samme igen i OnClose
så skulle det virke?

Hmm..
Hvordan kan jeg angive en sti, til en INI fil der skal krypteres i koden? :S





t