30. marts 2008 - 15:24Der er
16 kommentarer og 1 løsning
hvad med en "Saltphrase"?
Hej eksperter,
Kan man ikke lægge en form for "SaltPhrase" (tror jeg nok det hedder) ind i denne kode (Dette er en opfølger på tråden "Undgå at læse .txt fil."):
function encrypt(tekst,kode:string):string; var I: integer; begin for I := 1 to length(tekst) do begin tekst[I] := chr(ord(tekst[I])+ord(kode[(I mod length(kode))+1])); end; result := tekst; end;
function decrypt(tekst,kode:string):string; var I: integer; begin for I := 1 to length(tekst) do begin tekst[I] := chr(ord(tekst[I])-ord(kode[(I mod length(kode))+1])); end; result := tekst; end;
Og jeg forstår ikke helt din problem stilling. Skal du bruge det krypterede password til at tilgå en database med ? Eller skal du verifcere at brugeren har indtastet et korrekt password ? Eller ?
saltet er ikke kun for at beskytte koden imod at blive læst. det skal også bruges til, at man ikke kan "reset" passwordet. Mit password ligger i en .txt fil, men selv om det er krypteret, kan man stadig ændre/slette alt hvad der står i min .txt fil. ogj eg har lavet mit program sådan at hvis der ikke står noget i den .txt så skal man skrive et nyt. så jeg ville bruge saltet, sådan at det skulle være der, ellers ville programmet ikke virke. sådan man ikke bare kunne reset koden.
Det her virker hos mig (jeg har rearrangeret en lille smule):
program obfuscate;
(* NOTE: Dette er en obfuskerings algoritme snarere end en *) (* egentlig kryptering. Algoritmen har kunnet brydes siden *) (* midten af 1800 tallet. *)
{$APPTYPE CONSOLE}
uses SysUtils;
function encrypt(tekst,kode:string):string;
var I: integer;
begin for I := 1 to length(tekst) do begin tekst[I] := chr(ord(tekst[I])+ord(kode[(I mod length(kode))+1])); end; result := tekst; end;
function decrypt(tekst,kode:string):string;
var I: integer;
begin for I := 1 to length(tekst) do begin tekst[I] := chr(ord(tekst[I])-ord(kode[(I mod length(kode))+1])); end; result := tekst; end;
const salt = 'Bla bla bla';
function encryptsalt(tekst,kode:string):string;
begin result := encrypt(salt+tekst,kode); end;
function decryptsalt(tekst,kode:string):string;
var tmp : string;
begin tmp := decrypt(tekst,kode); result := copy(tmp,length(salt)+1,length(tmp)-length(salt)); end;
var p1,c1,p2,c2,p3:string;
begin p1 := 'Dette er en lille test'; writeln(p1); c1 := encrypt(p1,'Arnes kodeord'); writeln(c1); p2 := decrypt(c1, 'Arnes kodeord'); writeln(p2); c2 := encryptsalt(p2,'Arnes kodeord'); writeln(c2); p3 := decryptsalt(c2, 'Arnes kodeord'); writeln(p3); readln; end.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.