За последние 24 часа нас посетили 16020 программистов и 1642 робота. Сейчас ищут 958 программистов ...

Гаммирование

Тема в разделе "PHP для новичков", создана пользователем yfnf3, 23 ноя 2011.

  1. yfnf3

    yfnf3 Активный пользователь

    С нами с:
    14 дек 2010
    Сообщения:
    36
    Симпатии:
    0
    Пожалуйста прошу помочь Вас! Дело в том, что впервые столкнулся с гаммированием и необходимо было его реализовать. C++ подошёл бы лучше, но я всё же хочу сделать это на PHP. Те, кто знают как это реализовать, прошу помочь (на примере кода). Я выложил то, что удалось написать, но что то не так и он не работает. Помогите пожалуйста! :idea:


    PHP:
    1.  
    2. <HTML>
    3. <HEAD>
    4. <TITLE>Gamma</TITLE></HEAD>
    5. <BODY>
    6. <H1>Gamma</H1><br>
    7. <FORM NAME="f1" METHOD="POST">
    8. Input word: <br>
    9. <INPUT TYPE="text" NAME="pwd"><br>
    10. Input key: <br>
    11. <INPUT TYPE="text" name="keyz"><br>
    12. <INPUT TYPE="submit" value="CRYPT">
    13. </FORM>
    14. <?PHP
    15.  
    16.  
    17. if (isset($_POST["pwd"]))
    18. {
    19.  
    20. $prewords=$_POST["pwd"];
    21. $key=$_POST["keyz"];
    22. $str_len = strlen($prewords);
    23.  
    24. $gamma = '';
    25.  
    26. strtolower($prewords);
    27.  
    28. function xorShipher($prewords,$key)
    29. {
    30.     //simple xor
    31.     while (strlen($gamma)< $str_len)
    32.     {
    33.       $seq = pack("H*",sha1($key));
    34.       $gamma.=substr($seq,0,8);
    35.     }
    36.  
    37.     $resulted=$prewords^$gamma;
    38.  
    39.  echo "Шифруемое слово: ".$resulted."<br>";
    40.  
    41. echo "Кол-во символов: ".$str_len."<br>";
    42.  
    43. echo "Исходное слово слово: ".$prewords."<br>";
    44. }
    45. }
    46. ?>
    47. </BODY>
    48. </HTML>
    49.  
     
  2. FalkoN

    FalkoN Активный пользователь

    С нами с:
    1 апр 2011
    Сообщения:
    184
    Симпатии:
    0
    Адрес:
    Екатеринбург
    что-то мне кажется, что функция то написана, но ни разу не вызвана?
     
  3. yfnf3

    yfnf3 Активный пользователь

    С нами с:
    14 дек 2010
    Сообщения:
    36
    Симпатии:
    0
    Я ничего не смею отрицать(
    Впервые столкнулся(
    Как вызвать, помогите, пожалуйста!
     
  4. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    после strtolower($prewords);
    написать
    xorShipher($prewords,$key);
     
  5. yfnf3

    yfnf3 Активный пользователь

    С нами с:
    14 дек 2010
    Сообщения:
    36
    Симпатии:
    0
    "Fatal error: Call to undefined function xorShipher()"
     
  6. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    сори, я думал поймешь, что надо перенести после объявления функции.

    PHP:
    1. echo "Исходное слово слово: ".$prewords."<br>";
    2.  }
    3. xorShipher($prewords,$key);
    4.  }
     
  7. yfnf3

    yfnf3 Активный пользователь

    С нами с:
    14 дек 2010
    Сообщения:
    36
    Симпатии:
    0
    //Т.е. вот так?? Я что то туплю :(

    PHP:
    1. <HTML>
    2.  <HEAD>
    3.  <TITLE>Gamma</TITLE></HEAD>
    4.  <BODY>
    5.  <H1>Gamma</H1><br>
    6.  <FORM NAME="f1" METHOD="POST">
    7.  Input word: <br>
    8.  <INPUT TYPE="text" NAME="pwd"><br>
    9.  Input key: <br>
    10.  <INPUT TYPE="text" name="keyz"><br>
    11.  <INPUT TYPE="submit" value="CRYPT">
    12.  </FORM>
    13.  <?PHP
    14.  
    15.  
    16.  if (isset($_POST["pwd"]))
    17.  {
    18.  
    19.  $prewords=$_POST["pwd"];
    20.  $key=$_POST["keyz"];
    21.  $str_len = strlen($prewords);
    22.  
    23.  $gamma = '';
    24.  
    25.  strtolower($prewords);
    26.  
    27.  
    28.  function xorShipher($prewords,$key)
    29.  {
    30.      //simple xor
    31.      while (strlen($gamma)< $str_len)
    32.      {
    33.        $seq = pack("H*",sha1($key));
    34.        $gamma.=substr($seq,0,8);
    35.      }
    36.  
    37.      $resulted=$prewords^$gamma;
    38.    
    39.   echo "Шифруемое слово: ".$resulted."<br>";
    40.  
    41.  echo "Кол-во символов: ".$str_len."<br>";
    42.  
    43.  echo "Исходное слово слово: ".$prewords."<br>";
    44.  }
    45. xorShipher($prewords,$key);
    46.  }
    47.  ?>
    48.  </BODY>
    49.  </HTML>
     
  8. tommyangelo

    tommyangelo Старожил

    С нами с:
    6 дек 2009
    Сообщения:
    2.549
    Симпатии:
    0
    Адрес:
    Мариуполь
    ну, уже бы попробовал и проверил :)
     
  9. yfnf3

    yfnf3 Активный пользователь

    С нами с:
    14 дек 2010
    Сообщения:
    36
    Симпатии:
    0
    Да попробовал)
    Он теперь в строке "Шифруемое слово: " пишет "0"
    :(
     
  10. yfnf3

    yfnf3 Активный пользователь

    С нами с:
    14 дек 2010
    Сообщения:
    36
    Симпатии:
    0
    А если записать так, то он куда то заносит данные, что то делает с ними и НИЧЕГО не выносит в результат

    PHP:
    1. <HTML>
    2.  <HEAD>
    3.  <TITLE>Gamma</TITLE></HEAD>
    4.  <BODY>
    5.  <H1>Gamma</H1><br>
    6.  <FORM NAME="f1" METHOD="POST">
    7.  Input word: <br>
    8.  <INPUT TYPE="text" NAME="pwd"><br>
    9.  Input key: <br>
    10.  <INPUT TYPE="text" name="keyz"><br>
    11.  <INPUT TYPE="submit" value="CRYPT">
    12.  </FORM>
    13.  <?PHP
    14.  
    15.  
    16.  if (isset($_POST["pwd"]))
    17.  {
    18.  
    19.  $prewords=$_POST["pwd"];
    20.  $key=$_POST["keyz"];
    21.  $str_len = strlen($prewords);
    22.  
    23.  $gamma = '';
    24.  
    25.  strtolower($prewords);
    26.  
    27.  
    28.  function xorShipher($prewords,$key)
    29.  {
    30.      //simple xor
    31.      while (strlen($gamma)< $str_len)
    32.      {
    33.        $seq = pack("H*",sha1($key));
    34.        $gamma.=substr($seq,0,8);
    35.      }
    36.       return $string^$gamma;
    37.      $resulted=$prewords^$gamma;
    38.    
    39.   echo "Шифруемое слово: ".$resulted."<br>";
    40.  
    41.  echo "Кол-во символов: ".$str_len."<br>";
    42.  
    43.  echo "Исходное слово слово: ".$prewords."<br>";
    44. }
    45. xorShipher($prewords,$key);
    46.  }
    47.  ?>
    48.  </BODY>
    49.  </HTML>
     
  11. yfnf3

    yfnf3 Активный пользователь

    С нами с:
    14 дек 2010
    Сообщения:
    36
    Симпатии:
    0
    Я его немного подправил, но всё равно не понимаю. Что то с гаммой надо сделать.. Уже не соображаю, а к завтрашнему дню это надо(

    PHP:
    1. <HTML>
    2.  <HEAD>
    3.  <TITLE>Gamma</TITLE></HEAD>
    4.  <BODY>
    5.  <H1>Gamma</H1><br>
    6.  <FORM NAME="f1" METHOD="POST">
    7.  Input word: <br>
    8.  <INPUT TYPE="text" NAME="pwd"><br>
    9.  Input key: <br>
    10.  <INPUT TYPE="text" name="keyz"><br>
    11.  <INPUT TYPE="submit" value="CRYPT">
    12.  </FORM>
    13.  <?PHP
    14.  
    15.  
    16.  if (isset($_POST["pwd"]))
    17.  {
    18.  
    19.  $prewords=$_POST["pwd"];
    20.  $key=$_POST["keyz"];
    21.  $str_len = strlen($prewords);
    22.  
    23.  $gamma = '';
    24.  
    25.  strtolower($prewords);
    26.  
    27.  function xorShipher($prewords,$key)
    28.  {
    29.      //simple xor
    30.      while (strlen($gamma)< $str_len)
    31.      {
    32.        $seq = pack("H*",sha1($key));
    33.        $gamma.=substr($seq,0,8);
    34.        return $prewords^$gamma;
    35.        $resulted=$prewords^$gamma;
    36.         }
    37.      
    38.      
    39.     xorShipher($prewords,$key);  
    40.  
    41.    }
    42.   echo "Шифруемое слово: ".$resulted."<br>";
    43.  
    44.  echo "Кол-во символов: ".$str_len."<br>";
    45.  
    46.  echo "Исходное слово слово: ".$prewords."<br>";
    47.  
    48.  
    49.  
    50.  }
    51.  ?>
    52.  </BODY>
    53.  </HTML>