Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

PHP Kryptering

Forord

I denne artikel vil du lære at kryptere (hashe) dine kodeord, eller andre former for private ting.

Som overskriften lyder, vil du i denne artikel lære hvordan man laver en kryptering på sine kodeord, for at kunne følge med, skal du have kendskab til functions i PHP.

Men ellers lad os komme igang.

Trin 1: Funktionen
I dette trin, vil vi kryptere med md5 (vi vil arbejde videre på krypteringen senere i artiklen). Vi starter med at lave selve funktionen til krypteringen.
  1. function PassCrypt($str){
  2. $str = md5($str); //Vi kryptere variablen $str som er det ord og/eller sætning.
  3. print $str; //Vi udskriver vores krypterede variabel.
  4. }

For at få vores function til at køre med et ord/sætning. Så skal vi gøre følgende:

  • PassCrypt("123456"); //Vi fremkalder vores funktion, og får den til at kryptere "123456"
*HUSK: At din function skal endten være inkluderet eller være i samme fil som den fil du vil fremkalde den i.

Okai, hvis du kryptere følgende, vil du få en masse bogstaver og tal. Det er "123456" som krypteret format af MD5. (Læs mere om md5, her!)

Trin 2: Udvidelse, og flere krypteringer
Nu skal vi udbygge vores lille krypterings funktion, til en lidt mere avanceret kryptering. *Jeg har selv brugt denne kryptering på min egen side (til kodeord), men har lavet nyere.

Først, skal vi tilføje md5 og så skal vi lige forkorte vores md5-krypterede variabel. Det gøres således
  1. function PassCrypt($str){
  2. $str = md5($str); //Vi kryptere vores $str variabel
  3. $str = substr($str, 0, 6); //Vi forkorter vores krypterede $str variabel til 6 tegn.
  4. }
Sådan, det var let. Nu skal vi til at tilføje en del kode! *Der vil ikke være nogen forklaring i koden, men der vil komme forklaringer efter koden.
  1.     function PassCrypt($txt){
  2.         $txt = md5($txt);
  3.         $txt = hash('sha256', $txt, true);
  4.         $txt = crc32($txt);
  5.         if(strlen($txt) >= 10){
  6.             $sd ='raboulikrypteringhashellerandetformforkrypt';
  7.             $sdd ='38438495058495859438584';
  8.             $txt = $sd . $txt . $sdd;
  9.             $txt = hash("haval160,4", $txt, true);
  10.             }else{
  11.                 $sd ='raboulikrypteringhashellerandetformforkrypt';
  12.                 $sdd ='38438495058495859438584';
  13.                 $txt = $sd . $txt . $sdd;
  14.                 $txt = hash("haval160,4", $txt, true);
  15.             }
  16.         $txt = substr($txt, 0, 10);
  17.         $txt = md5($txt);
  18.         return $txt;
  19.     }
Sådan! Der er nogle få funktioner såsom hash(), crc32 du nok ikke forstår, men jeg vil nu forklare.

1. Først starter vi med at kryptere vores variabel med md5, derefter hasher vi den med sha256, så kryptere vi med crc32 (Læs mere her!).

2. Derefter tjekker vi lige om vores variabel er på 10 eller flere tegn, hvis den er det, definere vi 2 variabler med ja, det er ligemeget, det skal bare være de samme både i den nederste og øverste! (altså både i if(strlen($txt) >= 10){ og efter }else{).

3. Vi tilføjer så de her 2 variabler ind i vores krypterede variabl, så variablen "$sd" er forest, og variablen "$sdd" er bagerst. Så hasher vi igen, men denne gang med "haval160,4" (proceduren gentages efter }else{), så når vi så til enden af koden.

4. Vi forkorter endnu engang til 10 tegn, kryptere med md5 og så retunere vi texten, dvs vi skal skrive sådan her for at udskrive den;
  1. <?
  2. print PassCrypt("123456");
  3. ?>

og hvis den skal defineres som et variabel skal vi skrive
  1. <?
  2. $variablen = PassCrypt("123456");
  3. ?>


Tak fordi du læste med, konstruktiv kritik vil være godt!
Oprettet af:

PHP

Point modtaget: 1000

Rate:
22:29 10/03/2009

Kommentarer

Giv din mening tilkende om denne artikel, eller læs andres.
Har du spørgsmål eller brug for hjælp til denne artikel henvises du til forummet.

Point fejl!

Harchord har modtaget 250 point for denne artikel. Der opstod en fejl under point uddelingen, dette er derfor en fejl.
Oprettet af:
  Mail
17:14 11/03/2009
God artikel. Dog forstår jeg ikke, hvorfor man skal gøre det samme, uanset om den er over eller under 10 tegn? Kan man så ikke bare droppe det med de 10 tegn?
Oprettet af:
  Mail
20:50 11/03/2009
Jo, Emil, men det er bare lige for at få det til at se lidt bedere ud. Men jo den med 10 tegn, kan droppes efter eget valg.
Oprettet af:
  Mail
21:34 11/03/2009
Er det ikke nemmere bare at kalde hash('sha512',$txt) istedet for at lave alle mulige former for hashes på samme tid? Du opnår ihvertfald denne samme sikkerhed ved det.
Oprettet af:
  Mail
22:30 14/04/2009
Seriøst..
"1. Først starter vi med at kryptere vores variabel med md5, derefter hasher vi den med sha256, så kryptere vi med crc32 (Læs mere her!)."

Hvordan kan du først sige forkert.. så sige korrekt og så sige forkert igen?
md5, sha256 og crc32 er alle hashings metoder.
Oprettet af:
  Mail
12:40 18/08/2010
Du skal være oprettet og logget ind for at kommentere en artikel
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes