Advertisement
yacked2

[php] permutacija-crypt

Mar 28th, 2013
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 2.26 KB | None | 0 0
  1. <?php
  2.  
  3. $INniz='jacked'; //vhodni niz
  4. $char = 'D'; //zacetna crka
  5. $key = 'lovec'; //geslo
  6. $abc = array(1=>'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','R','S','T','U','V','Z'); //abeceda
  7.  
  8.  
  9. $INniz = strtoupper($INniz); //vse vhodne nize spremenimo v velike crke
  10. $char = strtoupper($char);
  11. $key = strtoupper($key);
  12.  
  13. $vnos = str_split($INniz); //vse vhodne nize razbijemo v arraye
  14. $crka = str_split($char);
  15. $kjuc = str_split($key);
  16.  
  17. foreach($abc as $index => $element) //crke v $abc zamenjamo s stevili
  18. {
  19.    $value = array_search($element, $abc);
  20.    $ABCst[] = $value; //dodamo jih v nov array $ABCst
  21. }
  22.  
  23. foreach($kjuc as $index => $element) //tudi crke v kjucu zamenjamo z stevilkami
  24. {
  25.    $value = array_search($element, $abc);
  26.    $K[] = $value; //dodamo jih j nov array $K
  27. }
  28.  
  29. $zacetek = array_search($char, $abc); //tudi začetno črko zamenjamo s številko
  30.  
  31. foreach($K as $index => $element) //v array code (kjer je kodirana abeceda dodamo kjuc, začnemo pri začetni črki
  32. {
  33.     $code[$zacetek+$index] = $element;
  34. }
  35.  
  36. for($a = 1; $a <= count($abc); $a++) //sedaj moramo iz abecede izločiti črke, ki so že uporabljene v kodirani abecedi
  37. {
  38.     if(!(in_array($ABCst[$a-1],$code)))
  39.     {
  40.         $prazna[]= $ABCst[$a-1]; //neuporabljene črke dodamo v array "prazna"
  41.     }
  42. }
  43.  
  44. $i = 1;
  45.  
  46. while($i <= count($abc)) //kodirano abecedo dopolnimo s črkami, ki še niso uporabljene
  47. {
  48.     $value = $zacetek + count($K)-1 + $i; //začnemo pri koncu gesla + $i
  49.    
  50.     if($value > count($abc)) //ko prečkamo velikost abecede se vrnemo na začetek
  51.     {
  52.         $value = $value - count($abc);
  53.     }
  54.    
  55.     if (!(array_key_exists($value, $code)))
  56.     {
  57.     $code[$value] = $prazna[$i-1];
  58.     }
  59.    
  60.     $i++;
  61. }
  62.  
  63. ksort($code); //vrednosti v kodirani abecedi razporedimo po velikosti indexov
  64.  
  65. foreach($code as $index => $element)
  66. {
  67.     $konec[] = $abc[$element]; //kodirano abecedo ( v številkah) zamenjamo z črkami
  68. }
  69.  
  70. foreach($abc as $index => $element) //razporedimo abecedo tako da je uporabljen tudi index 0
  71. {
  72.     $lepaAbeceda[] = $element;
  73. }
  74.  
  75. foreach($vnos as $index => $element) //vnosnemu nizu zamenjamo črke iz abecede v tisto iz zakodirane abecede
  76. {
  77.     $value = array_search($element, $lepaAbeceda);
  78.     $IZHOD[] = $konec[$value];
  79. }
  80.  
  81. echo implode('',$IZHOD); //izpišemo zakodiran niz
  82.  
  83. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement