ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.

02.04.2009, 10:22
|
|
Постоянный
Регистрация: 07.03.2008
Сообщений: 479
Провел на форуме: 791766
Репутация:
61
|
|
Почему функция неправитьно шифрует...
Заменяет не то что под тем сиволом как во 2 массиве...
PHP код:
function crupt($text){
$key = array(q,w,e,r,t,y,u,i,o,p,a,s,d,f,g,h,j,k,l,z,x,c,v,b,n,m,1,2,3,4,5,6,7,8,9,0);
$dekey=array(g,f,d,s,a,h,j,k,l,m,z,n,x,b,c,v,1,q,2,w,3,e,4,r,5,t,6,y,7,u,8,i,9,o,0,p);
$text = str_replace($key, $dekey, $text);
return $text;
}
|
|
|

02.04.2009, 10:45
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
потому что разное кол-во элементов массивов
|
|
|

02.04.2009, 10:54
|
|
Постоянный
Регистрация: 07.03.2008
Сообщений: 479
Провел на форуме: 791766
Репутация:
61
|
|
Сообщение от Pashkela
потому что разное кол-во элементов массивов
Да вроде даже на глаз видно что одинаковое...
|
|
|

02.04.2009, 11:27
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
Чото сам не понимаю, даже так сделал:
PHP код:
<?php
$key =
array("q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m","1","2","3","4","5","6","7","8","9","0");
$dekey=
array("g","f","d","s","a","h","j","k","l","m","z","n","x","b","c","v","1","q","2","w","3","e","4","r","5","t","6","y","7","u","8","i","9","o","0","p");
$str = "qwe";
echo str_replace($key, $dekey, $str);
?>
чушь какая-то 
|
|
|

02.04.2009, 11:37
|
|
Постоянный
Регистрация: 07.03.2008
Сообщений: 479
Провел на форуме: 791766
Репутация:
61
|
|
Сообщение от Pashkela
Чото сам не понимаю, даже так сделал:
PHP код:
<?php
$key =
array("q","w","e","r","t","y","u","i","o","p","a","s","d","f","g","h","j","k","l","z","x","c","v","b","n","m","1","2","3","4","5","6","7","8","9","0");
$dekey=
array("g","f","d","s","a","h","j","k","l","m","z","n","x","b","c","v","1","q","2","w","3","e","4","r","5","t","6","y","7","u","8","i","9","o","0","p");
$str = "qwe";
echo str_replace($key, $dekey, $str);
?>
чушь какая-то 
А как можно сделать?
Мне надо шифрование хотяб по 6 значному ключу...
|
|
|

02.04.2009, 11:38
|
|
Познающий
Регистрация: 06.12.2006
Сообщений: 57
Провел на форуме: 418176
Репутация:
31
|
|
PHP код:
<?
function crupt($text){
$key = array('q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','l','z','x','c','v','b','n','m','1','2','3','4','5','6','7','8','9','0');
$dekey=array('g','f','d','s','a','h','j','k','l','m','z','n','x','b','c','v','1','q','2','w','3','e','4','r','5','t','6','y','7','u','8','i','9','o','0','p');
$text = str_replace($key, $dekey, $text, $count);
echo $count;
return $text;
}
echo ' '.crupt('q');
?>
выводет
перезамен идёт по несколько раз
|
|
|

02.04.2009, 11:41
|
|
Участник форума
Регистрация: 11.12.2005
Сообщений: 160
Провел на форуме: 745130
Репутация:
159
|
|
проблема в том что в алфавите нет каких то букв, поэтому происходит замена левым символом который заменялся перед ней, иначе символом w как я понял. если тебе нужен шифроалгоритм могу скинуть перестановку с путями гамильтона(тока я не доделал декодирование сего мяса)
|
|
|

02.04.2009, 11:41
|
|
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме: 9220514
Репутация:
3338
|
|
а вот так работает:
PHP код:
<?php
function zam($text){
$key =
array("q","w","e","r","t","y","u");
$dekey=
array("g","f","d","s","a","h","j");
return str_replace($key, $dekey, $text);
}
$str = "qwe";
echo zam($str);
?>
т.е. прямая и явная связь с КОЛИЧЕСТВОМ элементов в массиве, т.е. есть ограничения какие-то, или не успевает вычислить, или хз
здесь
http://ru2.php.net/str_replace
ничего про такие ограничения не сказано, наверное мы обнаружили новый баг функции str_replace
Надо пулять сюда:
http://bugs.php.net/
Последний раз редактировалось Pashkela; 02.04.2009 в 11:52..
|
|
|

02.04.2009, 11:46
|
|
Познающий
Регистрация: 06.12.2006
Сообщений: 57
Провел на форуме: 418176
Репутация:
31
|
|
работает на половину не верно,верные вариации есть только потому что нет заменённых символов дальше в массиве на которые бы можно было ещё заменить
|
|
|

02.04.2009, 11:53
|
|
Познающий
Регистрация: 06.12.2006
Сообщений: 57
Провел на форуме: 418176
Репутация:
31
|
|
Pashkela.
да какой это баг, функция меняет все варианты котрые есть в массиве, и ей пофиг что они уже были когда то поменяны, перезамен идёт по несколько раз, так как заменив например на символ "e" на "d", она дальше в списке массива находит ещё символ "d" и меняет соответственно его на "x", поэтому и получается не верный результат
$key = array("q","w","e","r","t","y","u","i","o","p","a", "s","d");
$dekey= array("g","f","d","s","a","h","j","k","l","m","z", "n","x");
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|