Идеально для тех, кто хочет сделать свой мб мессенджер, где будет шифрование данных. Уязвимостей нету :) index.php <?php echo '<meta charset="utf-8">'; function encode($unencoded,$key){//Шифруем $string=base64_encode($unencoded);//Переводим в base64 $arr=array();//Это массив $x=0; while ($x++< strlen($string)) {//Цикл $arr[$x-1] = md5(md5($key.$string[$x-1]).$key);//Почти чистый md5 $newstr = $newstr.$arr[$x-1][3].$arr[$x-1][6].$arr[$x-1][1].$arr[$x-1][2];//Склеиваем символы } return $newstr;//Вертаем строку } function decode($encoded, $key){//расшифровываем $strofsym="qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM=";//Символы, с которых состоит base64-ключ $x=0; while ($x++<= strlen($strofsym)) {//Цикл $tmp = md5(md5($key.$strofsym[$x-1]).$key);//Хеш, который соответствует символу, на который его заменят. $encoded = str_replace($tmp[3].$tmp[6].$tmp[1].$tmp[2], $strofsym[$x-1], $encoded);//Заменяем №3,6,1,2 из хеша на символ } $answer = base64_decode($encoded);//Вертаем расшифрованную строку return $answer; } $domen = 'site.site'; $salt = md5('ВАША СОЛЬ'); $salt = md5('v!}OsJ?9RV:lH%0R52IZv!}OsJ?9RV:lH%0R52IZv!}OsJ?9RV:lH%0R52IZv!}OsJ?9RV:lH%0R52IZ'.$salt.'v!}OsJ?9RV:lH%0R52IZv!}OsJ?9RV:lH%0R52IZv!}OsJ?9RV:lH%0R52IZv!}OsJ?9RV:lH%0R52IZ'); $type = $_GET['a']; $text = $_GET['text']; $key = md5($_GET['key']); $key = md5('666'.$salt.'666'.$key.'666'); if($type == 'en') { include '1.php'; $newstr = encode($text, $key); $answer = $newstr; echo 'ENCODED: <textarea style="margin: 0px; height: 920px; width: 1894px;" readonly>'; echo $answer; echo '</textarea>'; } if($type == 'de') { $answer = decode($text, $key); include '2.php'; echo 'DECODED: <textarea style="margin: 0px; height: 920px; width: 1894px;" readonly>'; echo $answer; echo '</textarea>'; } echo '<br> '.$domen; ?> Код <?php echo '<meta charset="utf-8">'; function encode($unencoded,$key){//Шифруем $string=base64_encode($unencoded);//Переводим в base64 $arr=array();//Это массив $x=0; while ($x++< strlen($string)) {//Цикл $arr[$x-1] = md5(md5($key.$string[$x-1]).$key);//Почти чистый md5 $newstr = $newstr.$arr[$x-1][3].$arr[$x-1][6].$arr[$x-1][1].$arr[$x-1][2];//Склеиваем символы } return $newstr;//Вертаем строку } function decode($encoded, $key){//расшифровываем $strofsym="qwertyuiopasdfghjklzxcvbnm1234567890QWERTYUIOPASDFGHJKLZXCVBNM=";//Символы, с которых состоит base64-ключ $x=0; while ($x++<= strlen($strofsym)) {//Цикл $tmp = md5(md5($key.$strofsym[$x-1]).$key);//Хеш, который соответствует символу, на который его заменят. $encoded = str_replace($tmp[3].$tmp[6].$tmp[1].$tmp[2], $strofsym[$x-1], $encoded);//Заменяем №3,6,1,2 из хеша на символ } $answer = base64_decode($encoded);//Вертаем расшифрованную строку return $answer; } $domen = 'site.site'; $salt = md5('ВАША СОЛЬ'); $salt = md5('v!}OsJ?9RV:lH%0R52IZv!}OsJ?9RV:lH%0R52IZv!}OsJ?9RV:lH%0R52IZv!}OsJ?9RV:lH%0R52IZ'.$salt.'v!}OsJ?9RV:lH%0R52IZv!}OsJ?9RV:lH%0R52IZv!}OsJ?9RV:lH%0R52IZv!}OsJ?9RV:lH%0R52IZ'); $type = $_GET['a']; $text = $_GET['text']; $key = md5($_GET['key']); $key = md5('666'.$salt.'666'.$key.'666'); if($type == 'en') { include '1.php'; $newstr = encode($text, $key); $answer = $newstr; echo 'ENCODED: <textarea style="margin: 0px; height: 920px; width: 1894px;" readonly>'; echo $answer; echo '</textarea>'; } if($type == 'de') { $answer = decode($text, $key); include '2.php'; echo 'DECODED: <textarea style="margin: 0px; height: 920px; width: 1894px;" readonly>'; echo $answer; echo '</textarea>'; } echo '<br> '.$domen; ?> 1.php <?php $text = str_replace('а', 'aT', $text); $text = str_replace('б', 'bG', $text); $text = str_replace('в', 'yN', $text); $text = str_replace('г', 'pW', $text); $text = str_replace('д', 'kQ', $text); $text = str_replace('е', 'zM', $text); $text = str_replace('ё', 'zX', $text); $text = str_replace('ж', 'aJ', $text); $text = str_replace('з', 'aZ', $text); $text = str_replace('и', 'aI', $text); $text = str_replace('й', 'aL', $text); $text = str_replace('к', 'bK', $text); $text = str_replace('л', 'lK', $text); $text = str_replace('м', 'mS', $text); $text = str_replace('н', 'jI', $text); $text = str_replace('о', 'oP', $text); $text = str_replace('п', 'fF', $text); $text = str_replace('р', 'oR', $text); $text = str_replace('с', 'jQ', $text); $text = str_replace('т', 'mN', $text); $text = str_replace('у', 'pG', $text); $text = str_replace('ф', 'lE', $text); $text = str_replace('х', 'lH', $text); $text = str_replace('ц', 'uC', $text); $text = str_replace('ч', 'cH', $text); $text = str_replace('ш', 'kH', $text); $text = str_replace('щ', '**', $text); $text = str_replace('ъ', 'tV', $text); $text = str_replace('ы', 'dI', $text); $text = str_replace('ь', 'mV', $text); $text = str_replace('э', 'kB', $text); $text = str_replace('ю', 'tA', $text); $text = str_replace('я', 'iA', $text); $text = str_replace('А', 'BaTB', $text); $text = str_replace('Б', 'BbGB', $text); $text = str_replace('В', 'ByNB', $text); $text = str_replace('Г', 'BpWB', $text); $text = str_replace('Д', 'BkQB', $text); $text = str_replace('Е', 'BzMB', $text); $text = str_replace('Ё', 'BzXB', $text); $text = str_replace('Ж', 'BaJB', $text); $text = str_replace('З', 'BaZB', $text); $text = str_replace('И', 'BaIB', $text); $text = str_replace('Й', 'BaLB', $text); $text = str_replace('К', 'BbKB', $text); $text = str_replace('Л', 'BlKB', $text); $text = str_replace('М', 'BmSB', $text); $text = str_replace('Н', 'BjIB', $text); $text = str_replace('О', 'BoPB', $text); $text = str_replace('П', 'BfFB', $text); $text = str_replace('Р', 'BoRB', $text); $text = str_replace('С', 'BjQB', $text); $text = str_replace('Т', 'BmNB', $text); $text = str_replace('У', 'BpGB', $text); $text = str_replace('Ф', 'BlEB', $text); $text = str_replace('Х', 'BlHB', $text); $text = str_replace('Ц', 'BuCB', $text); $text = str_replace('Ч', 'BcHB', $text); $text = str_replace('Ш', 'BkHB', $text); $text = str_replace('Щ', 'BhHB', $text); $text = str_replace('Ъ', 'BtVB', $text); $text = str_replace('Ы', 'BdIB', $text); $text = str_replace('Ь', 'BmVB', $text); $text = str_replace('Э', 'BkBB', $text); $text = str_replace('Ю', 'BtAB', $text); $text = str_replace('Я', 'BiAB', $text); ?> Код <?php $text = str_replace('а', 'aT', $text); $text = str_replace('б', 'bG', $text); $text = str_replace('в', 'yN', $text); $text = str_replace('г', 'pW', $text); $text = str_replace('д', 'kQ', $text); $text = str_replace('е', 'zM', $text); $text = str_replace('ё', 'zX', $text); $text = str_replace('ж', 'aJ', $text); $text = str_replace('з', 'aZ', $text); $text = str_replace('и', 'aI', $text); $text = str_replace('й', 'aL', $text); $text = str_replace('к', 'bK', $text); $text = str_replace('л', 'lK', $text); $text = str_replace('м', 'mS', $text); $text = str_replace('н', 'jI', $text); $text = str_replace('о', 'oP', $text); $text = str_replace('п', 'fF', $text); $text = str_replace('р', 'oR', $text); $text = str_replace('с', 'jQ', $text); $text = str_replace('т', 'mN', $text); $text = str_replace('у', 'pG', $text); $text = str_replace('ф', 'lE', $text); $text = str_replace('х', 'lH', $text); $text = str_replace('ц', 'uC', $text); $text = str_replace('ч', 'cH', $text); $text = str_replace('ш', 'kH', $text); $text = str_replace('щ', '**', $text); $text = str_replace('ъ', 'tV', $text); $text = str_replace('ы', 'dI', $text); $text = str_replace('ь', 'mV', $text); $text = str_replace('э', 'kB', $text); $text = str_replace('ю', 'tA', $text); $text = str_replace('я', 'iA', $text); $text = str_replace('А', 'BaTB', $text); $text = str_replace('Б', 'BbGB', $text); $text = str_replace('В', 'ByNB', $text); $text = str_replace('Г', 'BpWB', $text); $text = str_replace('Д', 'BkQB', $text); $text = str_replace('Е', 'BzMB', $text); $text = str_replace('Ё', 'BzXB', $text); $text = str_replace('Ж', 'BaJB', $text); $text = str_replace('З', 'BaZB', $text); $text = str_replace('И', 'BaIB', $text); $text = str_replace('Й', 'BaLB', $text); $text = str_replace('К', 'BbKB', $text); $text = str_replace('Л', 'BlKB', $text); $text = str_replace('М', 'BmSB', $text); $text = str_replace('Н', 'BjIB', $text); $text = str_replace('О', 'BoPB', $text); $text = str_replace('П', 'BfFB', $text); $text = str_replace('Р', 'BoRB', $text); $text = str_replace('С', 'BjQB', $text); $text = str_replace('Т', 'BmNB', $text); $text = str_replace('У', 'BpGB', $text); $text = str_replace('Ф', 'BlEB', $text); $text = str_replace('Х', 'BlHB', $text); $text = str_replace('Ц', 'BuCB', $text); $text = str_replace('Ч', 'BcHB', $text); $text = str_replace('Ш', 'BkHB', $text); $text = str_replace('Щ', 'BhHB', $text); $text = str_replace('Ъ', 'BtVB', $text); $text = str_replace('Ы', 'BdIB', $text); $text = str_replace('Ь', 'BmVB', $text); $text = str_replace('Э', 'BkBB', $text); $text = str_replace('Ю', 'BtAB', $text); $text = str_replace('Я', 'BiAB', $text); ?> 2.php <?php $answer = str_replace('BaTB', 'А', $answer); $answer = str_replace('BbGB', 'Б', $answer); $answer = str_replace('ByNB', 'В', $answer); $answer = str_replace('BpWB', 'Г', $answer); $answer = str_replace('BkQB', 'Д', $answer); $answer = str_replace('BzMB', 'Е', $answer); $answer = str_replace('BzXB', 'Ё', $answer); $answer = str_replace('BaJB', 'Ж', $answer); $answer = str_replace('BaZB', 'З', $answer); $answer = str_replace('BaIB', 'И', $answer); $answer = str_replace('BaLB', 'Й', $answer); $answer = str_replace('BbKB', 'К', $answer); $answer = str_replace('BlKB', 'Л', $answer); $answer = str_replace('BmSB', 'М', $answer); $answer = str_replace('BjIB', 'Н', $answer); $answer = str_replace('BoPB', 'О', $answer); $answer = str_replace('BfFB', 'П', $answer); $answer = str_replace('BoRB', 'Р', $answer); $answer = str_replace('BjQB', 'С', $answer); $answer = str_replace('BmNB', 'Т', $answer); $answer = str_replace('BpGB', 'У', $answer); $answer = str_replace('BlEB', 'Ф', $answer); $answer = str_replace('BlHB', 'Х', $answer); $answer = str_replace('BuCB', 'Ц', $answer); $answer = str_replace('BcHB', 'Ч', $answer); $answer = str_replace('BkHB', 'Ш', $answer); $answer = str_replace('BhHB', 'Щ', $answer); $answer = str_replace('BtvB', 'Ъ', $answer); $answer = str_replace('BdIB', 'Ы', $answer); $answer = str_replace('BmVB', 'Ь', $answer); $answer = str_replace('BkBB', 'Э', $answer); $answer = str_replace('BtAB', 'Ю', $answer); $answer = str_replace('BiAB', 'Я', $answer); $answer = str_replace('aT', 'а', $answer); $answer = str_replace('bG', 'б', $answer); $answer = str_replace('yN', 'в', $answer); $answer = str_replace('pW', 'г', $answer); $answer = str_replace('kQ', 'д', $answer); $answer = str_replace('zM', 'е', $answer); $answer = str_replace('zX', 'ё', $answer); $answer = str_replace('aJ', 'ж', $answer); $answer = str_replace('aZ', 'з', $answer); $answer = str_replace('aI', 'и', $answer); $answer = str_replace('aL', 'й', $answer); $answer = str_replace('bK', 'к', $answer); $answer = str_replace('lK', 'л', $answer); $answer = str_replace('mS', 'м', $answer); $answer = str_replace('jI', 'н', $answer); $answer = str_replace('oP', 'о', $answer); $answer = str_replace('fF', 'п', $answer); $answer = str_replace('oR', 'р', $answer); $answer = str_replace('jQ', 'с', $answer); $answer = str_replace('mN', 'т', $answer); $answer = str_replace('pG', 'у', $answer); $answer = str_replace('lE', 'ф', $answer); $answer = str_replace('lH', 'х', $answer); $answer = str_replace('uC', 'ц', $answer); $answer = str_replace('cH', 'ч', $answer); $answer = str_replace('kH', 'ш', $answer); $answer = str_replace('**', 'щ', $answer); $answer = str_replace('tv', 'ъ', $answer); $answer = str_replace('dI', 'ы', $answer); $answer = str_replace('mV', 'ь', $answer); $answer = str_replace('kB', 'э', $answer); $answer = str_replace('tA', 'ю', $answer); $answer = str_replace('iA', 'я', $answer); ?> Код <?php $answer = str_replace('BaTB', 'А', $answer); $answer = str_replace('BbGB', 'Б', $answer); $answer = str_replace('ByNB', 'В', $answer); $answer = str_replace('BpWB', 'Г', $answer); $answer = str_replace('BkQB', 'Д', $answer); $answer = str_replace('BzMB', 'Е', $answer); $answer = str_replace('BzXB', 'Ё', $answer); $answer = str_replace('BaJB', 'Ж', $answer); $answer = str_replace('BaZB', 'З', $answer); $answer = str_replace('BaIB', 'И', $answer); $answer = str_replace('BaLB', 'Й', $answer); $answer = str_replace('BbKB', 'К', $answer); $answer = str_replace('BlKB', 'Л', $answer); $answer = str_replace('BmSB', 'М', $answer); $answer = str_replace('BjIB', 'Н', $answer); $answer = str_replace('BoPB', 'О', $answer); $answer = str_replace('BfFB', 'П', $answer); $answer = str_replace('BoRB', 'Р', $answer); $answer = str_replace('BjQB', 'С', $answer); $answer = str_replace('BmNB', 'Т', $answer); $answer = str_replace('BpGB', 'У', $answer); $answer = str_replace('BlEB', 'Ф', $answer); $answer = str_replace('BlHB', 'Х', $answer); $answer = str_replace('BuCB', 'Ц', $answer); $answer = str_replace('BcHB', 'Ч', $answer); $answer = str_replace('BkHB', 'Ш', $answer); $answer = str_replace('BhHB', 'Щ', $answer); $answer = str_replace('BtvB', 'Ъ', $answer); $answer = str_replace('BdIB', 'Ы', $answer); $answer = str_replace('BmVB', 'Ь', $answer); $answer = str_replace('BkBB', 'Э', $answer); $answer = str_replace('BtAB', 'Ю', $answer); $answer = str_replace('BiAB', 'Я', $answer); $answer = str_replace('aT', 'а', $answer); $answer = str_replace('bG', 'б', $answer); $answer = str_replace('yN', 'в', $answer); $answer = str_replace('pW', 'г', $answer); $answer = str_replace('kQ', 'д', $answer); $answer = str_replace('zM', 'е', $answer); $answer = str_replace('zX', 'ё', $answer); $answer = str_replace('aJ', 'ж', $answer); $answer = str_replace('aZ', 'з', $answer); $answer = str_replace('aI', 'и', $answer); $answer = str_replace('aL', 'й', $answer); $answer = str_replace('bK', 'к', $answer); $answer = str_replace('lK', 'л', $answer); $answer = str_replace('mS', 'м', $answer); $answer = str_replace('jI', 'н', $answer); $answer = str_replace('oP', 'о', $answer); $answer = str_replace('fF', 'п', $answer); $answer = str_replace('oR', 'р', $answer); $answer = str_replace('jQ', 'с', $answer); $answer = str_replace('mN', 'т', $answer); $answer = str_replace('pG', 'у', $answer); $answer = str_replace('lE', 'ф', $answer); $answer = str_replace('lH', 'х', $answer); $answer = str_replace('uC', 'ц', $answer); $answer = str_replace('cH', 'ч', $answer); $answer = str_replace('kH', 'ш', $answer); $answer = str_replace('**', 'щ', $answer); $answer = str_replace('tv', 'ъ', $answer); $answer = str_replace('dI', 'ы', $answer); $answer = str_replace('mV', 'ь', $answer); $answer = str_replace('kB', 'э', $answer); $answer = str_replace('tA', 'ю', $answer); $answer = str_replace('iA', 'я', $answer); ?> Чтобы зашифровать надо сделать запрос: http://ваш.сайт/?a=en&text=ТУТ ВАШ ТЕКСТ ДЛЯ ШИФРОВАНИЯ&key=ТУТ КЛЮЧ ДЛЯ ШИФРОВАНИЯ Чтобы расшифровать надо сделать запрос: http://ваш.сайт/?a=de&text=ТУТ ВАШ ЗАШИФРОВАННЫЙ ТЕКСТ&key=ТУТ КЛЮЧ ШИФРОВАНИЯ
RtkN0omVM, можно все упростить еще, использовав следующие функции: $encrypt = mc_encrypt('3c6e0b8a9c15224a8228b9a98ca1531d', 'Hello, world!'); $decrypt = mc_decrypt('3c6e0b8a9c15224a8228b9a98ca1531d', $encrypt); echo '<p>'. $encrypt .'</p>'; echo '<p>'. $decrypt .'</p>'; function mc_encrypt($key, $encrypt) { $encrypt = serialize($encrypt); $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC), MCRYPT_DEV_URANDOM); $key = pack('H*', $key); $mac = hash_hmac('sha256', $encrypt, substr(bin2hex($key), -32)); $passcrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $encrypt.$mac, MCRYPT_MODE_CBC, $iv); $encoded = base64_encode($passcrypt).'|'.base64_encode($iv); return $encoded; } function mc_decrypt($key, $decrypt) { $decrypt = explode('|', $decrypt.'|'); $decoded = base64_decode($decrypt[0]); $iv = base64_decode($decrypt[1]); if(strlen($iv)!== mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC)) { return false; } $key = pack('H*', $key); $decrypted = trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $decoded, MCRYPT_MODE_CBC, $iv)); $mac = substr($decrypted, -64); $decrypted = substr($decrypted, 0, -64); $calcmac = hash_hmac('sha256', $decrypted, substr(bin2hex($key), -32)); if($calcmac !== $mac){ return false; } $decrypted = unserialize($decrypted); return $decrypted; } Код $encrypt = mc_encrypt('3c6e0b8a9c15224a8228b9a98ca1531d', 'Hello, world!'); $decrypt = mc_decrypt('3c6e0b8a9c15224a8228b9a98ca1531d', $encrypt); echo '<p>'. $encrypt .'</p>'; echo '<p>'. $decrypt .'</p>'; function mc_encrypt($key, $encrypt) { $encrypt = serialize($encrypt); $iv = mcrypt_create_iv(mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC), MCRYPT_DEV_URANDOM); $key = pack('H*', $key); $mac = hash_hmac('sha256', $encrypt, substr(bin2hex($key), -32)); $passcrypt = mcrypt_encrypt(MCRYPT_RIJNDAEL_256, $key, $encrypt.$mac, MCRYPT_MODE_CBC, $iv); $encoded = base64_encode($passcrypt).'|'.base64_encode($iv); return $encoded; } function mc_decrypt($key, $decrypt) { $decrypt = explode('|', $decrypt.'|'); $decoded = base64_decode($decrypt[0]); $iv = base64_decode($decrypt[1]); if(strlen($iv)!== mcrypt_get_iv_size(MCRYPT_RIJNDAEL_256, MCRYPT_MODE_CBC)) { return false; } $key = pack('H*', $key); $decrypted = trim(mcrypt_decrypt(MCRYPT_RIJNDAEL_256, $key, $decoded, MCRYPT_MODE_CBC, $iv)); $mac = substr($decrypted, -64); $decrypted = substr($decrypted, 0, -64); $calcmac = hash_hmac('sha256', $decrypted, substr(bin2hex($key), -32)); if($calcmac !== $mac){ return false; } $decrypted = unserialize($decrypted); return $decrypted; } Ключ принимается длинной только 32 или 64 символа, поэтому можно с помощью md5 захешировать какое-нибудь слово или фразу и использовать этот хэш в качестве ключа.