Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: шифрование текста, работа с ассоциативными массивами

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
mindinbox
Отправлено: 27 Января, 2016 - 11:55:50
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




Есть идея написать простую шифровалку текста. Смысл в том, что каждой букве соответствует определенное число. Для этого использую ассоциативный массив:
PHP:
скопировать код в буфер обмена
  1.  
  2. $a = array("01"=>"а", "02"=>"б", "03"=>"в", "04"=>"г") ; // и так далее до 33
  3.  

И так, буквы перевожу в цифры без проблем обычной заменой, используя функцию
PHP:
скопировать код в буфер обмена
  1.  
  2. $usr_str = str_replace($rus, $num, $text_for_coding) ;
  3.  

и получаю длинющую строку из цифр.
А что бы расшифровать обратно, преобразую строку в ассоциативный массив, имеющий по два значения из строки на ключ:

В итоге тут затык у меня, я имею два ассоциативных массива:
созданный мой с ключом для расшифровки:
Array ( [01] => а [02] => б [03] => в)
и полученный закодированный от пользователя (значение 030303, что должно значить ввв)
Array ( [0] => 03 [1] => 03 [2] => 03 )
Нужно сравнить массивы и вывести совпадения по ключам и вывести результат, что бы получилось то самое ввв
Подскажите в какую сторону копать?

(Отредактировано автором: 27 Января, 2016 - 11:58:35)

 
 Top
lastdays
Отправлено: 27 Января, 2016 - 12:36:44
Post Id



Частый гость


Покинул форум
Сообщений всего: 221
Дата рег-ции: Март 2013  


Помог: 7 раз(а)




PHP:
скопировать код в буфер обмена
  1.  
  2.  
  3. function test( $text, $type = false )
  4. {
  5.  $code     = array('q'=>'01', 'w'=>'02', 'e'=>'03', 'r'=>'04', 't'=>'05', 'ы'=>'06');
  6.  $decode   = array('01'=>'q', '02'=>'w', '03'=>'e', '04'=>'r', '05'=>'t', '06'=>'ы');
  7.  $replace  = $type ? $code : $decode;
  8.  return strtr($text,$replace);
  9. }
  10.  
  11.  
  12. $user_name = 'qwertы';
  13. echo test($user_name, true);
  14. echo '<br />';
  15. $user_name = '010203040506';
  16. echo test($user_name);
  17.  
  18.  


Радость
 
 Top
dcc0
Отправлено: 27 Января, 2016 - 14:33:51
Post Id


Участник


Покинул форум
Сообщений всего: 1043
Дата рег-ции: Июль 2014  


Помог: 10 раз(а)




Есть еще такая интересная штука: циклические последовательности ( Шифр Бэкона ).

(Отредактировано автором: 27 Января, 2016 - 14:34:30)



-----
Март 2021. Бросил программирование
 
 Top
mindinbox
Отправлено: 28 Января, 2016 - 11:09:04
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Окт. 2011  


Помог: 0 раз(а)




спасибо, lastdays
все просто и без циклов с перебором)

dcc0, спасибо за интересный способ шифрования, не знал, почитаю.
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB