login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Beveiliging > [crypt] haytjes

[crypt] haytjes

Auteur: haytjes - 09 september 2005 - 22:26 - Gekeurd door: nemesiskoen - Hits: 7454 - Aantal punten: 4.10 (5 stemmen)




HACRYPT & DEHACRYPT

1. Inleiding

Dit is de eerste keer dat ik een crypt en decrypt functie maak. Nu voor dit script heb ik mij in het standpunt van hacker en cracker geplaatst. Ik heb me dus vooral afgevraagd wat ik zou doen, als ik een hacker of cracker was. Dus wat ik zou doen, wanneer ik een gecrypteerde tekst krijgt en die moet decrypteren. Ik hoop dan ook dat ik erin geslaagd been een redelijk goede crypteerder te maken.

2. Functies

Deze crypt bestaat uit twee functie:
hacrypt(); & dehacrypt();

2.1. hacrypt(“woord”, “paswoord”);

Deze functie crypteert jouw woord, zin of tekst naar een [0-9]+ string. Hierbij kan je gebruik maken van een paswoord, wat natuurlijk veiliger is. Je kan het paswoord ook leeg laten. Code: $crypt = hacrypt($tekst,$pass);.

2.2. dehacrypt(“crypt”, “paswoord”);

Deze functie decrypteert het woord dat je hebt gecrypteerd met ‘hacrypt’. Je vult de string in en het paswoord dat je hebt gebruikt om het te decrypteren.
Ik heb ervoor gekozen ook mijn decrypt tool erbij te zetten. Dit was wel even werk, omdat er nog een verschil in zit tussen: weten dat je het kan decrypteren, het bedenken hoe dat moet en het effectieve maken. Een crypteer functie alleen maken is veel gemakkelijker. Ik zet de decrypt tool er nog bij, omdat ik vind dat het door iedereen mag gebruikt worden.
Code: $tekst = dehacrypt($crypt,$pass);

3. Uitleg

3.1. Voordelen

1) Elke crypt is uniek, ook al gebruik je hetzelfde woord en paswoord. Dit heb ik erin gebouwd, vooral voor de security.

2) Ik heb alleen de output [0-9]+ gebruikt, omdat hierdoor er minder charakteristieken in zit.

3) Dit script kan alle tekens crypteren, dus ook \t,▐, ϝ ...

4) Je moet geen paswoord invullen, maar het zorgt voor een extra veiligheid. Het paswoord is ook geëncrypteerd, dus als ze op één of andere manier de tekst kraken, is het paswoord nog veilig.

3.2 Nadelen

Elk script heeft zijn nadelen en ik vind het best om die ook op te noemen. Hierdoor toon ik wel de zwakheden, die sommige mensen niet direct zouden merken, maar ik vind dit nog altijd het eerlijkste:

1) Vanaf dat dit script populair wordt, is de beveiliging eraf. Dus raad je aan bij gebruik van dit script, nooit de code te tonen

2) Hoe groter je tekst wordt, hoe langer dat het duurt om het te maken:
10 tekens => 0,0009 sec.
100 tekens => 0,0145 sec.
500 tekens => 0,2135 sec.
1000 tekens => 0,7344 sec.

3) Doordat je als output alleen maar [0-9]+ krijgt, wordt de tekst plusminus 4*groter dan de orginele tekst.

Code:
  1. <?
  2. function hacrypt($word, $pass="")
  3. {
  4. if(is_string($word) && is_string($pass))
  5. {
  6. $crypt_pass = "";
  7. $y = strlen($pass);
  8. for($x=0;$x<$y;$x++)
  9. {
  10. $crypt_pass .= ord(substr($pass,$x,1));
  11. }
  12. $crypt = "";
  13. $y = strlen($word);
  14. for($x=0;$x<$y;$x++)
  15. {
  16. if($x>0)
  17. $tekst[$x] = $tekst[$x-1] + ord(substr($word,$x,1));
  18. else
  19. $tekst[$x] = ord(substr($word,$x,1));
  20. if($tekst[$x] > 1000)
  21. $tekst[$x] -= 1000;
  22. $crypt .= str_pad($tekst[$x],4,"0",STR_PAD_LEFT);
  23. }
  24. $y = strlen($crypt);
  25. if(!empty($crypt_pass))
  26. $crypt_pass = str_pad ("", $y,$crypt_pass);
  27. $rand = round(rand(1,999));
  28. $rand_tot = $rand;
  29. $tmp1 = $rand;
  30. for($x=0;$x<$y;$x++)
  31. {
  32. $tmp1 = bcmul($tmp1,"10");
  33. $rand_tot = bcadd($rand_tot,$tmp1);
  34. }
  35. $optel = strrev(bcadd($crypt,$crypt_pass));
  36. $optel = bcadd($optel,$rand_tot);
  37. if(strlen(strlen($y))>3)
  38. die("Text is to big");
  39. return $optel.str_pad($rand,4,"0",STR_PAD_LEFT).$y.str_pad(strlen($y),3,"0",STR_PAD_LEFT);
  40. }
  41. else
  42. {
  43. die("You need to give a string as input");
  44. }
  45. }
  46. function dehacrypt($crypt, $pass="")
  47. {
  48. if(is_string($crypt) && is_string($pass))
  49. {
  50. $crypt_pass = "";
  51. $y = strlen($pass);
  52. for($x=0;$x<$y;$x++)
  53. {
  54. $crypt_pass .= ord(substr($pass,$x,1));
  55. }
  56. $l = substr($crypt,strlen($crypt)-3,3)*1;
  57. $lengte = substr($crypt,strlen($crypt)-$l-3,$l)*1;
  58. $rand = substr($crypt,strlen($crypt)-4-$l-3,4);
  59. $crypt = strrev(substr($crypt,0,-4-$l-3));
  60. if(!empty($crypt_pass))
  61. $crypt_pass = str_pad ("", $lengte,$crypt_pass);
  62. $rand_tot = $rand;
  63. $tmp1 = $rand;
  64. for($x=0;$x<$lengte;$x++)
  65. {
  66. $tmp1 = bcmul($tmp1,"10");
  67. $rand_tot = bcadd($rand_tot,$tmp1);
  68. }
  69. $optel = strrev(bcsub(strrev($crypt),$rand_tot));
  70. $optel = bcsub($optel,$crypt_pass);
  71. $optel = str_pad($optel,$lengte,"0",STR_PAD_LEFT);
  72. $y = strlen($optel);
  73. $vorige=0;
  74. $word = "";
  75. for($x=0;$x<$y;$x+=4)
  76. {
  77. $nu = substr($optel,$x,4);
  78. if($vorige > $nu)
  79. $vorige = $vorige-1000;
  80. $word .= chr($nu-$vorige);
  81. $vorige = $nu;
  82. }
  83. return $word;
  84. }
  85. else
  86. {
  87. die("You need to give a string as input");
  88. }
  89. }
  90. ?>
Download code! Download code (.txt)

 Bekijk een voorbeeld van dit script!
 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (8)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.035s