ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > PHP, PERL, MySQL, JavaScript
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #9811  
Старый 02.04.2009, 11:54
Byrger
Постоянный
Регистрация: 07.03.2008
Сообщений: 479
Провел на форуме:
791766

Репутация: 61
По умолчанию

Цитата:
Сообщение от vizard-06  
Pashkela.
да какой это баг, функция меняет все варианты котрые есть в массиве, и ей пофиг что они уже были когда то поменяны, перезамен идёт по несколько раз, так как заменив например на символ "e" на "d", она дальше в списке массива находит ещё символ "d" и меняет соответственно его на "x", поэтому и получается не верный результат
И как сделать чтоб 1 раз меняла?
 

  #9812  
Старый 02.04.2009, 11:55
vizard-06
Познающий
Регистрация: 06.12.2006
Сообщений: 57
Провел на форуме:
418176

Репутация: 31
По умолчанию

Byrger
меняй по отдельности буквы а не все сразу или реализовать через ASCII

Последний раз редактировалось vizard-06; 02.04.2009 в 12:00..
 

  #9813  
Старый 02.04.2009, 11:59
Byrger
Постоянный
Регистрация: 07.03.2008
Сообщений: 479
Провел на форуме:
791766

Репутация: 61
По умолчанию

Цитата:
Сообщение от vizard-06  
Byrger
меняй по отдельности буквы а не все сразу
Отсюда вопрос как сторку разбить по букавм на массив и потом после прогона собрать?
 

  #9814  
Старый 02.04.2009, 12:15
vizard-06
Познающий
Регистрация: 06.12.2006
Сообщений: 57
Провел на форуме:
418176

Репутация: 31
По умолчанию

можно попробовать вот так извратиться)))
PHP код:
<?
function crupt($text)
{
    
$key = array(ord('q'),ord('w'),ord('e'),ord('r'));
    
$dekey= array(ord('g'),ord('f'),ord('d'),ord('s'));
    for(
$i 0$i strlen($text); $i++)
    {
        
$texte .= chr(str_replace($key$dekeyord($text{$i})));
    }
    return 
$texte
}
echo 
crupt('qwer');
?>
 

  #9815  
Старый 02.04.2009, 12:32
vizard-06
Познающий
Регистрация: 06.12.2006
Сообщений: 57
Провел на форуме:
418176

Репутация: 31
По умолчанию

а лучше всё-таки
PHP код:
<?
function crupt($text)
{
    
$key = array('q' => 'g''w' => 'f','e' => 'd''r' => 's');
    for(
$i 0$i strlen($text); $i++)
    {
        
$rekey = empty($key[$text{$i}]) ? $text{$i} : $key[$text{$i}];
        
$texte .= $rekey;
    }
    return 
$texte;
}
echo 
crupt('bbbqwer');
?>
 

  #9816  
Старый 02.04.2009, 12:34
Byrger
Постоянный
Регистрация: 07.03.2008
Сообщений: 479
Провел на форуме:
791766

Репутация: 61
По умолчанию

Цитата:
Сообщение от vizard-06  
можно попробовать вот так извратиться)))
PHP код:
<?
function crupt($text)
{
    
$key = array(ord('q'),ord('w'),ord('e'),ord('r'));
    
$dekey= array(ord('g'),ord('f'),ord('d'),ord('s'));
    for(
$i 0$i strlen($text); $i++)
    {
        
$texte .= chr(str_replace($key$dekeyord($text{$i})));
    }
    return 
$texte
}
echo 
crupt('qwer');
?>
Аналогичный результат...
Без шифровки: e10adc3949ba59abbe56e057f20f883e
после шифровки: d10adc3949ba59abbd56d057f20f883d
После расшифровки: e10aec3949ba59abbe56e057w20w883e
 

  #9817  
Старый 02.04.2009, 12:40
vizard-06
Познающий
Регистрация: 06.12.2006
Сообщений: 57
Провел на форуме:
418176

Репутация: 31
По умолчанию

в массиве на замен не все символы, добаляй все, я ради приера показывал
 

  #9818  
Старый 02.04.2009, 12:48
NuR
Участник форума
Регистрация: 11.12.2005
Сообщений: 160
Провел на форуме:
745130

Репутация: 159
Отправить сообщение для NuR с помощью ICQ
По умолчанию

собственно вот вам реализация крипто-алгоритма методом перестановки с применением путей Гамильтона

Код:
function gamilton_enc($in,$key)
    {
        $out = "";
        $routes = array(
            1 => "45102376",
            2 => "40231576",
            3 => "46201573",
            4 => "45762013",
            5 => "40132675");

        $tmp_key = $routes[array_rand($routes, 1)];
        $block_size = strlen($tmp_key);
        while (strlen($in) % $block_size != 0) {
            $in .= "*";
        }
        $num_block = 0;
        $blocks = array();
        for ($i = 0; $i < strlen($in); ) {
            $blocks[$num_block] = substr($in, $i, $block_size);
            $num_block++;
            $i += $block_size;
        }
        $key_routes = explode(",", $key);
        foreach ($blocks as $key => $block) {
            $curent_key = $key % count($key_routes);
            for ($i = 0; $i < strlen($routes[$key_routes[$curent_key]]); $i++) {
                $out .= $block[$routes[$key_routes[$curent_key]][$i]];
            }
        }
        return $out;
    }


    function gamilton_dec($in,$key)
    {
        $out = "";
        $fout="";
        $routes = array(
            1 => "45102376",
            2 => "40231576",
            3 => "46201573",
            4 => "45762013",
            5 => "40132675");

        $tmp_key = $routes[array_rand($routes, 1)];
        $block_size = strlen($tmp_key);

        $num_block = 0;
        $blocks = array();
        for ($i = 0; $i < strlen($in); ) {
            $blocks[$num_block] = substr($in, $i, $block_size);
            $num_block++;
            $i += $block_size;
        }
        $key_routes = explode(",", $key);
        $block_num=0;
        foreach ($blocks as $key => $block) {
            $curent_key = $key % count($key_routes);
            for ($i = 0; $i < strlen($routes[$key_routes[$curent_key]]); $i++) {
                $out[$block_num][$routes[$key_routes[$curent_key]][$i]] = $block[$i];
            }
            ksort($out[$block_num]);
            $fout.=implode('',$out[$block_num]);
            $block_num++;
        }

        return $fout;
    }
    $in = "e10adc3949ba59abbe56e057f20f883e";
    $key = "2,5,3";
    var_dump( gamilton_enc($in,$key) );
помоему никто еще на пхп не реализовывал данный алгоритм=) хорошо шифрует строки кратные длине ключа, а если нет то выходит что на выходе будут технические символы. если кто то заинтересуется может доработать мой код
 

  #9819  
Старый 02.04.2009, 12:52
Byrger
Постоянный
Регистрация: 07.03.2008
Сообщений: 479
Провел на форуме:
791766

Репутация: 61
По умолчанию

Цитата:
Сообщение от NuR  
собственно вот вам реализация крипто-алгоритма методом перестановки с применением путей Гамильтона



помоему никто еще на пхп не реализовывал данный алгоритм=) хорошо шифрует строки кратные длине ключа, а если нет то выходит что на выходе будут технические символы. если кто то заинтересуется может доработать мой код
Спасибо большое!
 

  #9820  
Старый 02.04.2009, 12:54
m0Hze
Он хакер.
Регистрация: 01.11.2008
Сообщений: 1,756
Провел на форуме:
6462214

Репутация: 3171


По умолчанию

В php и так уже все сделано за тебя =)
PHP код:
$str "Hello";
echo 
$str[0]; // Выводит H, но работает только со строками,тоесть с " "

--or--
$str "Hello";
$arr str_split($str); 
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ