17. juni 2003 - 01:37Der er
2 kommentarer og 1 løsning
Kryptering (eller scrambling)
Jeg skal lave en kryptering og dekryptering af et password. Der skal komme samme antal ud som der kommer ind. Jeg har prøvet med mange forskellige algoritmer, men problemet er at jeg skal holde mig indenfor ascii 32 - 127. Ellers går der ged i den når jeg smider det krypterede password ned i en Paradox database. Feltet i databasen er 10 tegn String, og der er et par tusinde installationer ude, så jeg skal helst holde mig fra at ændre i databasen.
Er der nogle gode forslag...jeg er ikke den skarpeste til matematik.
1) moderne krypterings algoritme og konvertering til 32-127 bagefter
f.eks. 3DES eller AES og så konvertering til base64
fordele: giver 32-127 sikker
ulemper: +33% i længde
2) gammel krypterings algoritme hvor output per selve algoritmen holdes 32-127
fordele: giver 32-127 beholder længde
ulemper: ikke sikker (=kun obfuscering)
Se seksempel nedenfor:
program Crypt;
{$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(32+((ord(tekst[I])-32)+(ord(kode[(I mod length(kode))+1])-32)) mod 96); 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(32+(96 + (ord(tekst[I])-32)-(ord(kode[(I mod length(kode))+1])-32)) mod 96); end; result := tekst; end;
var t : string;
begin t := 'Dette er en proeve'; writeln(t); writeln(encrypt(t, 'hemmeligt')); writeln(decrypt(t, 'hemmeligt')); writeln(decrypt(encrypt(t, 'hemmeligt'), 'hemmeligt')); writeln(encrypt(decrypt(t, 'hemmeligt'), 'hemmeligt')); end.
At knække den form for kode har været kendt i mere end 100 år, men den kan ikke læses fra databasen med en SELECT statement.
Og jeg tror at det bliver meget svært at finde en moderne krypetrings algoritme der holder sig 32-127. De er normalt designet til at håndtere generelle input og output. De bruger meget ofte XOR og den har nogle kedelige egenskaber i 32-127 sammenhæng.
tak for dit svar. Det var lige præcis det jeg søgte. Ingen problemer med at hølde det ned i databasen.
det var sq dejligt. Nu har jeg siddet og keglet med det i 1½ dag
Du har fortjent dine point.
//heh
Synes godt om
Ny brugerNybegynder
Din løsning...
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.