Avatar billede dank Nybegynder
06. oktober 2003 - 12:02 Der er 16 kommentarer og
1 løsning

sikker kodning af streng

jeg har

abcdefghijklmnopqrstuvwxyz

som jeg gerne vil have kodet til noget uigenkendeligt og noget som kun kan de krypteres ved at kende en kode.

Altså jeg forstiller sig at man krypterer det ved hjælp af en kode og decrypterer det med samme kode.

kan man det? Hvordan? Hvad er den absolut sikreste metode?
Avatar billede binderup Nybegynder
06. oktober 2003 - 13:01 #1
Måske du skulle overveje md5? http://dk2.php.net/md5

med det tager du strengen og får md5 hash værdien - dette er en envejs "kryptering", men du kan bruge resultatet til at sammenligne med en evt. gemt værdi i en database.

Jeg har selv brugt det til en personaledatabase, hvor det var vigtigt for brugerne at jeg som admin ikke kunne se hvad de havde skrevet som password (men jeg kunne til hver en tid overskrive deres password med et nyt).

Når brugeren så loggede på, så tog jeg md5 værdien af deres password og sammenlignede det med den gemte væri i databasen.
Avatar billede mikl-dk Nybegynder
06. oktober 2003 - 13:12 #2
Det er et gammelt spørgsmål, der kommer igen og igen... Hvor sikkert er sikkert? Hvordan skal det krypteret, og hvor sikkert skal det absolut være? Hvilke informationer skal tekststrenge indehold - hvor følsomme er de oplysninger?

Det er nok spørgsmålet om du skal anvende symmetrisk eller assymmetrisk kryptering. Ved den symmetriske har du den problem, at både Alice og Bob (sender og modtager) skal kende det samme password - aka nøgledistribution.

Assymmetrisk kryptering er, alt efter informationers "værdi", nok det, man burde vælge. En god løsning ville måske være RSA (søg på google efter det).

Men som binderup siger, kommer det an på, om det er fordi, at du skal sende informationer frem og tilbage, som en slags krypteret informationsudveksling (chat), eller om det er indetifikation/sammenligning af data som fx password.

Alle disse ting skal man overveje først...
Avatar billede dank Nybegynder
06. oktober 2003 - 13:15 #3
ja det er så "symmetrisk" kryptering jeg har behov for. I mit tilfælde er det ikke et spørgsmål om "værdi'en" men om metoden. Jeg er klar over min situation er lidt speciel.
Avatar billede dank Nybegynder
06. oktober 2003 - 13:16 #4
(selvom det er symetrisk kryptering skal man vel stadig kende nøglen inden der kan dekrypteres, eller?)
Avatar billede mikl-dk Nybegynder
06. oktober 2003 - 13:34 #5
Ja ja - men så bliver sender og modtager enig om en fælles nøgle - eller password om man vil.

Den måde du kan gøre det på er fx ved at lave hvert enkelt bogstav om til dets ascii værdi - og måske denne om til binær værdi, bagefter kan du så addere bits, når du har gjort det samme med passwordet... Du kan fx også blot gange strengens ascii-værdi med passwordets...

ex:

$password = "s4asv4Sqf2b";
$passwordAscii;

$str = "abcdefghijklmnopqrstuvwxyz";
$strAscii;


for ($i = 0; $i <= strlen($password) - 1; $i++)
{
  $passwordAscii = $passwordAscii . ord(substr($password, $i, 1));
}

for ($i = 0; $i <= strlen($str) - 1; $i++)
{
  $strAscii = $strAscii . ord(substr($str, $i, 1));
}

$returnStr = $passwordAscii * $strAscii;

http://dk.php.net/ord
http://dk.php.net/chr
http://dk.php.net/substr

*IKKE TESTET*

Prøv at leg lidt med det...
Avatar billede erikjacobsen Ekspert
06. oktober 2003 - 13:36 #6
Vil du lave symmetrisk kryptering så skal du ikke bruge en hjemmelavet
metode. Brug http://www.php.net/manual/en/ref.mcrypt.php
Avatar billede dank Nybegynder
06. oktober 2003 - 13:50 #7
erikjacobsen> Det ser helt rigtigt ud det link du har fundet der. Jeg kan blot ikke lige helt overskue konsekvensen af re-compileringen af php.

her tænker jeg specielt på: --disable-posix-threads

Nogen der ved noget om det?
Avatar billede dank Nybegynder
06. oktober 2003 - 14:00 #8
mikl-dk +ericjacobsen opretter i svar. Jeg benytter nok mcrypt men intersant at stifte bekendtskab med mikl-dk's forslag, så du får også lidt point.
Avatar billede mikl-dk Nybegynder
06. oktober 2003 - 14:16 #9
erikjacobsen, dank <- Okay - vi er enige i funktionsbenyttelsen, hvis det blot er for at få krypteringsfunktionen. Jeg havde blot, fejlagtigt, fået den opfattelse, at dank ville lege med kryptering selv - også selve krypteringsteknikker, så derfor mit svar om en hjemmebrygget funktion - nærmest som en appetitvækker.
Avatar billede erikjacobsen Ekspert
06. oktober 2003 - 14:37 #10
Jeg ved tilfældigvis at dank laver noget for alvor ;)) Frafalder point.
Avatar billede dank Nybegynder
06. oktober 2003 - 15:11 #11
takker til jer begge.. --disable-posix threads har iøvrigt ikke den store indvirkning, så jeg forsøger med mcrypt.
Avatar billede mikl-dk Nybegynder
06. oktober 2003 - 17:19 #12
dank <- takker
erikjacobsen <- det betragter jeg som en lusket form for insider-viden, som vi andre ikke har adgang til :)
Avatar billede erikjacobsen Ekspert
06. oktober 2003 - 18:50 #13
Det er i hvert fald lusket hvis jeg scorer en million point pga den viden *he*
Avatar billede mikl-dk Nybegynder
06. oktober 2003 - 19:02 #14
En hurtig hovedregning siger mig, at det er 5000 spørgsmål med maks point! :) men alligevel - det er en mulighed :D
Avatar billede erikjacobsen Ekspert
06. oktober 2003 - 19:07 #15
En anden hovedregning siger, at hvis nu der reelt er de 10.000 brugere, og
de tjener 5p hver dag, så er det 50.000p pr dag, og så tager det 20 dage
at "producere" 1 million point. Hvorfor er det egentlig det minder mig
om inflation ... *hehe*
Avatar billede mikl-dk Nybegynder
06. oktober 2003 - 19:30 #16
Ja, så max antal point burde være 200 + (50000 / antal oprettede spørgsmål pr dag) :D
Avatar billede dank Nybegynder
06. oktober 2003 - 19:31 #17
Jeg er bare glad for at der overhovedet er noget der hedder makspoint.. lidt ligesom en grænse på sit plastikkort - ellers kan det nemt gå galt :)
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester