zura-blog base64Привіт всім відвідувачам Zura — Blog, сьогодні знову вирішив повернутись до мови програмування РНР, власне між постами які стосувались такого питання “Як працює мережа” приділив час  кодам РНР, передивляючись свої попередні публікації, які я викладав ще в літку, тоді просто перекладав матеріал з одного з джерел, правда без перевірки, як працють коди.

Зараз передивляючись  і перевіряючи тодішні матеріали, виправив пару  помилок, а заодно як сам бачу присів я на РНР,  але як говориться щоб щось засвоїти або чомусь навчитись, тоді потрібно практикуватись, і щось  вміти зробити, конче потрібно над тим попрацювати.

Водієві наприклад щоб навчитись водінню, конче потрібно їздити, інакше не навчиться, знати буде як але вміти не буде, то саме стосується і  мов програмування, щоб засвоїти мову програмування, звісно що потрібно самому писати хоча б простенькі коди.

Власне я вже отримав деяку практику в модифікуванні скриптів, вирішив спробувати написати якийсь примітивний, але  про те можливо і корисний скрипт.

Саме спочатку мене зацікавила функція, яка призначена для кодування даних “md5”, вирішив на її основі написати скрипт. Код розробляв для форми в публікації “Створюємо форму авторизації для входу на сайт мовою програмування РНР“, в якій говориться про форму і простий скрипт для авторизаці.

Ввівши логін і пароль, і після індентифікації даних, здійснюється перехід на сторінку в якій  може зберігатись якась особисто ваша інформація, яка доступна для перегляду не кожному відвідувачу, а тільки тому кому ви надасте пароль

Ну а пароль, в коді знаходиться в масиві, я і вирішив внести деякі зміни в той код форми,  додавши такий елемент, який повинен працювати наступним чином, до форми додається ще одне поле для введення, ввівши в поле звичайне слово, і після перезапуску сторінки замісь слова повинен зявитись складний пароль.  

Вирішив  написати скрипт,  застосувавши який можна отримати складний пароль,  для скрипта паролю вирішив спочатку застосувати функцію “md5”, з її допомогою можна закодувати слово, або декілька слів, чи текст, і отримати символи з тридцяти шести букв і цифр, і застосувати символи як  складний пароль, з простого слова.

З цією функцією “md5” вийшов “обломчик”, точніше не з самою функцією, а  не получилось того чого хотів, дещо позлившись, порившись в мережі, найшов інший спосіб вирішити  завдання, точніше ще одну функцію для кодування даних, а з нею то якраз  і получилось, і те що задумав, навіть і більше.

Для чого взагалі може бути корсина ця функція, можна для декілька цілей застосувати, отож наберіться терпіння і дочитайте до кінця.

Як часто в мене буває в програмуванні,  а можливо і не тільки в мене, я ставив за мету одне, а вийшло зовсім інше, і до речі отримав в результаті ще корисніший елемент.

По перше получився такий собі примітивний перетворювач складних паролів з звичайних слів, правда його ще треба допрацювати, оскільки поки що не для відвідувачів, а скоріше для мене, тому що вручну потрібно вносити зміни в коді.

Отже в чому суть, в тому що любе слово, чи  “pupkin”, або цілий текст, а головне що і сам рядок коду в якому можна вказати  посилання на ваш сайт, посилання то якраз  можна закодувати функцією “Base64”, до речі можна  кодувати або шифрувати і в “md5”.

Але з “md5” то що хотів тоді не получалось, ну ще попрацював і з нею, інформація про “md5” в наступній публікації, і в результаті получився генератор паролів.

Власне внизу сам код з фукнкцією “Base64”, і пояснення для чого може бути потрібна ця функція і розяснення для коду.

<?php
$str = 'PGEgaHJlZj0iaHR0cDovL3J1c3p1cmEuaW4udWEidGFyZ2V0PSJfYmxhbmsiPlp1cmEtQmxvZzwvYT4=';
echo base64_decode($str);
?><br>
<?php
$str = '<a href="http://ruszura.in.ua"target="_blank">Zura-Blog</a>';
echo base64_encode($str);
?>
<br>
<?php
$str = 'pupkin';
echo base64_encode($str);
?>
 <br>
<?php
$str = 'dupkin123';
echo base64_encode($str);
?><br>
<?php
$str = 'cHVwa2lu';
echo base64_decode($str);
?>
<br>
<?php
$str = 'ZHVwa2luMTIz';
echo base64_decode($str);
?>

Щоб зрозуміти як працює функція, краще запустити локальний сервер, створити новий файл, і запустити файл в браузері  на виконання.

Як бачите шість частинок рнр коду,  дивимось, перші дві частинки, там  вказано  посилання на мій сайт,  перша частинка  в коді це прописане посилання на мій сайт в зашифрованому варіанті, 

<?php
$str = PGEgaHJlZj0iaHR0cDovL3J1c3p1cmEuaW4udWEidGFyZ2V0PSJfYmxhbmsiPlp1cmEtQmxvZzwvYT4= ‘;
echo base64_decode($str);
?>

але сторінка в браузері посилання буде відображати в звичайному не зашифрованому виді, а в коді як бачите відображаються комбінація з букв і чисел,

інша частинка РНР коду, друга яка йде слідом за першою так званий двійник першої.

<?php
$str = ‘<a href=”http://ruszura.in.ua”target=”_blank”>Zura-Blog</a>‘;
echo base64_encode($str);
?>

в коді сторінки як бачите відображається посилання на мій сайт, а в браузері відображається набір символів, про те це те саме посилання тільки в зашифрованому вигляді.

Таку комбінацію створила функція  “Base64”, а саме закодувавши посилання на мій сайт. Дальше мова про те для чого така комбінація в коді може пригодитись.

Знаєте взагалі то получився дуже корисний елемент, і пригодиться тому наприклад, хто комусь робить сайти, можна впаяти зашифроване посилання на свій сайт, в любий шаблон, і не обовязково щоб посилання відображалось на сторінці в браузері.  

Для того щоб на сторінці його не було видно, в рядку коду всього навсього потрібно видалити текст який вказує на посилання, в даному рядку це Zura – Blog.

З рядку коду сторінки, якщо не видалити текст, тоді він  виведеться на сторінці в браузері, рядок в коді який буде вказувати на посилання в зашифрованому варіанті, і тоді в того кому ви зробите сайт, ну або ще якийсь елемент, буде на сайті стояти ваше приховане посилання, на ваш ресурс.

Яка користь якщо на чийомусь ресурсі розміщене посилання на ваш сайт, навіть якщо приховане, думаю розяснювати не потрібно. Це завжди “плюс один” для підвищення показників в гуглі і яндексі.

Власне видаливши наприклад в даному коді текст  Zura – Blog, тоді на сторінці  нічого не буде відображатись, і тільки лише при наведенні курсору в то місце, стрілка  покаже що там присутнє посилання.  Зразу і не побачиш, можливо хтось навіть і не здогадається.

Не досвідчений чувачок навряд чи догадається що там посилання, оскільки в самих кодах сторінок буде шукати щось подібне на 

<a href=””>

а саме 

<a href=”http://ruszura.in.ua”target=”_blank”>Zura-Blog</a>

щось таке легко побачить, і видалить, звісно що якщо просто виставити посилання на його сайті, тоді так, але погодьтесь, аж ніяк не зверне увагу на код рнр, тим більше на  змінну “$srt”, навіть якщо побачить що на веб сторінці знаходиться приховане посилання, тому що з того місця здійснюється перехід на ваш ресурс, але всерівно, поперше в коді не знайде, мабуть навіть і не ризикне видалити символи в рнр коді,   боячись що все пропаде.

Ну а хто шарить в рнр то звісно що зразу зверне увагу на функцію “Base64”, ще можливо вам листа з матами пришле, до речі на початку засвоювання  створення сайтів, з чимось подібним стикнувся, виручив тоді плагін TAС, до речі прикрасно вказав  місце де присутні лишні посилання, і що саме потрібно видаляти, вони то в шаблонах і відображались в зашифрованому вигляді.  

Рухаємось далі, як зробити таке приховане а заодно і закодоване посилання, спочатку цю функцію для іншого завдання мав намір застосувати, для кодування логіна і пароля, а потім спробував додати в зміну  “$srt” посилання замість слова, і також получилось, супер.

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

ЯК закодувати своє посилання, копіюєте цей код,

<?php
$str = '<a href="http://ruszura.in.ua"target="_blank">Zura-Blog</a>';
echo base64_encode($str);
?>

вставляєте в потрібне місце в коді сторінки, і зберігаєте, в редакторі рнрStorm до речі все автоматично зберігається, дуже зручний рнр редактор для програмування, можливо завдяки йому і присів на  мову програмування рнр, в  рядку коду вище знаходиться посилання на мій сайт,  вказуєте своє.

$str =<a href=“http://ruszura.in.ua”target=”_blank”>Zura-Blog</a>‘;

Перезапускаєте сторінку, і на сторінці після перезапуску відобразиться  комбінація з  чисел і літер,

PGEgaHJlZj0iaHR0cDovL3J1c3p1cmEuaW4udWEidGFyZ2V0PSJfYmxhbmsiPlp1cmEtQmxvZzwvYT4=

копіюєте  комбінацію з чисел і літер, і вставляєте в лапки замість вашого посилання, в змінній “$srt” замість вашого посилання, як видно що закодовані символи набагато більші за кількістю, ніж не кодований текст, а тепер зверніть увагу на код, на третій рядок

echo base64_encode($str),

а саме на слово “encode”. Отож міняєте слово “encode” на “decode”, і має получитись розкодування зашифрованих символів, які ви отримали при  “encode”.

echo base64_decode($str).

encode — закодовує символи 

decode — розкодовує

Отже  encode  (закодовує символи), після перезапуску сторінки у вас зявиться комбінація з цифр і літер, копіюєте цю комбінацію і вставляєте в змінній “$str”, в лапках замість вашого посилання, потім міняєте в коді, замість “encode” який кодує символи вставляєте “decode” який розкодовує символи, і після перезапуску знову появиться текст, або ваше посилання, а в змінній залишиться кодована комбінація з літер і цифр.

Просто міняти “decode” на “encode”, і на оборот “encode” на “decode”, при змінах літер “en” на “de” в змінній обовязково не забувайте вірно виставляти або ваше посилання, або символи з літер і букв, після збереження змін і перезапуску сторінки, будуть  відображатись або кодовані символи, або простий текст.

Для того щоб краще зрозуміти, можите скопіювате самий перший код в цій публікації, це такий собі тестовий код, в якому знаходяться два варіанта, наприклад саме посилання на Zura — Blog, і закодований варіант посилання на  блог.

Далі те саме, тільки замість посилання  звичайні слова “pupkin” або “dupkin”. Після перезапуску сторінки відображається в коді основний текст, і також закодований набір символів.

Набір символів який зробить “base64” можите сміло скопіювати і зберегти навіть в текстовому файлі, він інший при повторній зміні команд encode  (закодовує символи) і decode (розкодовує)  не буде, тут головне в змінну не забувати вставляти вірний текст, щоб не вийшло що замість закодованого ви вставили основний текст, або наоборот, для того який потрібно закодувати ви вставити закодований, тоді відбудеться уже кодування не тексту, а шифрованого набору літер і символів.

Хоча не страшно, можна вставити в змінну “$str” новий текст,  а  поередній видалити 😕 .

Ну в загальному по кодуванню  “Base64” усе, власне збирався функцію “md5” протестувати а протестував Base64.

Думаю ще і з “md5” щось корисне можна буде зробити, і вийде якийсь результат, найближчим часом попрацюю над “md5”, чим ці функії відрізняються одна від одної, напишу в публікаціях найближчим часом.

Так що потрібно вам пароль придумати, бутьласка, відкриваєте або створюєте новий файл в веб редакторі, копіюєте код, запускаєте локальний сервер, до речі розширення файлу тільки рнр, вставляєте код, і в змінній “$str ‘ ‘ ;” вставляєте слово, чи текст, чи посилання, не має значення все спрацює, і не забудьте виставити  “encode”, то му що при “decode” нічого не получиться.

І отрмаєте результат, або закодоване слово при “encode”, або текст, чи посилання при “decode”, хоча хто з вас робить проекти, мабуть знає як приховати в коді своє посилання.

До зустрічі.


Нижче інформація по “Генераторам пароля”,  в трьох публікаціях, передивіться всі три і виберіть для себе підходящий варіант.

user_97

Як створити складний пароль за допомогою функції md5() в мові програмування PHP

Як зробити генератор пароля мовою програмування PHP

Розшифровуємо і зашифровуємо дані за допомогою функції base_64 в PHP