php обратимое шифрование по ключу



Автор Артём Пашкевич задал вопрос в разделе Другие языки и технологии

Расшифровать: RFlnTjfn;I4 - oбрaтимoe шифрoвaниe тeкcтa — мeтoд «Двoйнoй квaдрaт» Ваш ответ? и получил лучший ответ

Ответ от Андрей Севастьянов[гуру]
FROMBLOG.RU

Ответ от Alexey N[гуру]
Я там зарегался, когда была загадка "чему равно 2+2".

Ответ от $[активный]
Copy Source | Copy HTML
/**
* Обратимое шифрование методом "Двойного квадрата" (Reversible crypting of "Double square" method)
* @param String $input Строка с исходным текстом
* @param bool $decrypt Флаг для дешифрования
* @return String Строка с результатом Шифрования|Дешифрования
* @author runcore
*/
function dsCrypt($input,$decrypt=false) {
$o = $s1 = $s2 = array(); // Arrays for: Output, Square1, Square2
// формируем базовый массив с набором символов
$basea = array('?','(','@',';','$','#',"]","&",'*'); // base symbol set
$basea = array_merge($basea, range('a','z'), range('A','Z'), range(0,9) );
$basea = array_merge($basea, array('!',')','_','+','|','%','/','[','.',' ') );
$dimension=9; // of squares
for($i=0;$i<$dimension;$i++) { // create Squares
for($j=0;$j<$dimension;$j++) {
$s1[$i][$j] = $basea[$i*$dimension+$j];
$s2[$i][$j] = str_rot13($basea[($dimension*$dimension-1) - ($i*$dimension+$j)]);
}
}
unset($basea);
$m = floor(strlen($input)/2)*2; // !strlen%2
$symbl = $m==strlen($input) ? '':$input[strlen($input)-1]; // last symbol (unpaired)
$al = array();
// crypt/uncrypt pairs of symbols
for ($ii=0; $ii<$m; $ii+=2) {
$symb1 = $symbn1 = strval($input[$ii]);
$symb2 = $symbn2 = strval($input[$ii+1]);
$a1 = $a2 = array();
for($i=0;$i<$dimension;$i++) { // search symbols in Squares
for($j=0;$j<$dimension;$j++) {
if ($decrypt) {
if ($symb1===strval($s2[$i][$j]) ) $a1=array($i,$j);
if ($symb2===strval($s1[$i][$j]) ) $a2=array($i,$j);
if (!empty($symbl) && $symbl===strval($s2[$i][$j])) $al=array($i,$j);
}
else {
if ($symb1===strval($s1[$i][$j]) ) $a1=array($i,$j);
if ($symb2===strval($s2[$i][$j]) ) $a2=array($i,$j);
if (!empty($symbl) && $symbl===strval($s1[$i][$j])) $al=array($i,$j);
}
}
}
if (sizeof($a1) && sizeof($a2)) {
$symbn1 = $decrypt ? $s1[$a1[0]][$a2[1]] : $s2[$a1[0]][$a2[1]];
$symbn2 = $decrypt ? $s2[$a2[0]][$a1[1]] : $s1[$a2[0]][$a1[1]];
}
$o[] = $symbn1.$symbn2;
}
if (!empty($symbl) && sizeof($al)) // last symbol
$o[] = $decrypt ? $s1[$al[1]][$al[0]] : $s2[$al[1]][$al[0]];
return implode('',$o);
}

Ответ от 3 ответа[гуру]
Привет! Вот подборка тем с ответами на Ваш вопрос: Расшифровать: RFlnTjfn;I4 - oбрaтимoe шифрoвaниe тeкcтa — мeтoд «Двoйнoй квaдрaт» Ваш ответ?

PHP функции шифрования с ключём
Для симметричного шифрования:

Для передачи симметричного ключа можно использовать схему
подробнее...

Сортировка Map/Multimap одновременно и по ключу и по значению .
Во-первых, std::map и std::multimap не предназначены для сортировки после их создания т. к. метод
подробнее...

шифрование. что такое односторонне и двух сторонне шифрование в интернете нет ничего про ето
Одностороннее шифрование является безопасной формой хеширования: текстовый сменяется видимо
подробнее...
спросили в Апачи
вывод сообщений на сайте с помощью php или js
Боюсь, придётся задействовать веб-сокеты, если нужно, чтоб сразу появлялось. Можно и с помощью
подробнее...
Ответ от 3 ответа[гуру]
Привет! Вот еще темы с похожими вопросами:

Лучший метод шифрования сообщений с закрытым ключом?
Если под закрытым ключем понимается закрытый (и единственный) ключ симметричного шифрования, то
подробнее...

Можно ли писать вирусы на PHP?
Можно, в убогой PHP Devel Studio, по готовым видеоурокам, и вирусы только убогие получатся совсем,
подробнее...
спросили в Интернет
Забыла граф. ключ, после многих попыток телефон требует адрес на гугле (
Вы не первая с такой проблемой, у меня знакомые тоже забывали. Носили в сервис, там им разлочивали
подробнее...

что такое ШИФРОВАНИЕ ДАННЫХ в компе интернета и где их изменить можно?
Если вы имеете в виду встроенное средство шифрования данных Windows - EFS то эта ситсема позволяет
подробнее...

php - работа с массивами
$array = array_combine($a, $b); // Объединяем оба массива в один, где один - ключи, другой -
подробнее...
спросили в 1553 год
Как расшифровывать шифр Виженера и что это такое?
Шифр Виженера это метод шифрования буквенного текста с использованием ключевого слова.
подробнее...
спросили в Интернет Веб почта
Какие плюсы и минусы у яндекс денег и веб мани? Нужно сделать выбор между.
После попадания в кошелёк ЯД охватывает чувство лёгкого недоумения. Немного убогий интерфейс,
подробнее...
спросили в Интернет Wifi
что значит wifi с поддержкой WDS?
Wireless Distribution System (WDS) — технология, позволяющая расширить зону покрытия беспроводной
подробнее...

А вот где в Екатеринбурге самые дешевые теплицы из поликарбоната
Аня, в поисковике посмотри- я особо не смотрел, я сам делаю, а объявлений по Ебургу много ..вот
подробнее...

Для чего атлетам шиповики или как они называются... ну кроссовки не обычные для бега. И можно заниматься легкой атлетикой
Правильно называются - легкоатлетические шиповки. Бывают для спринта (коротких дистанций) - с
подробнее...
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*