Віктор Турський про програмування
Віктор Турський про програмування
  • 34
  • 337 138
Що захищає твої дані й гроші від хакерів? Асиметричне шифрування та цифровий підпис
Шифрування й цифровий підпис лежить в основі безпеки Інтернету. Базове розуміння цих концепций важливе для кожного інженера.
У відео спробував відповісти на:
✅ Чим відрізняється симетрична й асиметрична криптографія?
✅ Навіщо потрібен вектор ініціалізації?
✅ Як працює аутентифікація по ключу в SSH?
✅ Як працює Дія підпис чи підпис в банківських системах?
✅ Як працює шифрування листів за допомогою PGP. Той самий Proton mail?
✅ Як працює JWT?
✅ Як праюють холодні гаманці в блокчейні?
✅ Як працює двофакторна аутентифікація через Google Authenticator?
3000 грн ЗНИЖКИ на курси Mate Acadamy для підписників:
mate.ac/v-turskyi
Станьте спонсором цього каналу: th-cam.com/channels/hhNJ3SmzX_d7kMpSEMDfzg.htmljoin
Допоможіть каналу розвиватися й отримуйте доступ до ексклюзивного контенту.
Код на Github: github.com/koorchik/jabascript-materials/tree/main/encryption
Зміст відео:
0:00 - Вступ
2:04 - Симетрична криптографія
2:41 - Асиметрична криптографія
4:35 - Шифруванян публічним ключем
5:00 - Цифровий підпис
8:52 - Гібридні схеми
10:55 - Еліптичні криві
11:45 - Підпис симетричним ключем
12:22 - JWT
13:45 - Основна проблема
16:58 - Холодні гаманці в блокчейн
18:25 - Гугл аунтентифіктор
20:54 - Аутентифікація по ключу в SSH
25:10 - Партнерський блок
27:45 - RSA на NodeJs
31:00 - ECC на NodeJs
31:30 - AES на NodeJs
32:12 - Вектор ініціалізації та ECB пінгвін
32:12 - Вектор ініціалізації та ECB пінгвін
36:05 - Бекдор в алгоритмах
🏠 Мої соцмережі:
Жабаскрипт в телеграмі - t.me/jabascript
Я в Твітер - ViktorTurskyi
Мій Linkedin - www.linkedin.com/in/turskyi/
#програмування #українською #programming #encryption #digitalsignature #privatekey #coldwallet #rsa #https #internet
มุมมอง: 15 701

วีดีโอ

Що не так з Інтернетом в кафе? Розбираємо DHCP
มุมมอง 76Kปีที่แล้ว
Відео з серії, як працює Інтернет. Це відео про те, звідки беруться налаштування Інтернету на ваших пристроях. Також поговоримо трохи про безпеку У відео спробував відповісти на: ✅ Потенційну небезпеку при користуванн Інтернетом в кафе ✅ Концептуально розібрати, як пристрої отримують налаштування мережі ✅ Підміняю адресу сайту в локальній мережі ✅ Розбираємо трафік в деталях Wireshark Станьте с...
Як працює Інтернет? Як працює рекурсивний пошук в DNS?
มุมมอง 12Kปีที่แล้ว
Якщо ти займаєшся веб-розробкою, то маєш розуміти, як працює Інтернет. Це відео друге в серії про DNS з появненням, як працює рекурсивний пошук доменного імені. У відео спробував відповісти на: ✅ Невже кожен DNS сервер зберігає інформацію про вс веб-сайти світу ✅ Розбір рекурсивного пошуку DNS імені ✅ Навіщо потрібн NS записи ✅ Навіщо потрібн коренев DNS сервери ✅ Звідки DNS сервер знає адреси ...
Як працює Інтернет? Основні питання про DNS
มุมมอง 49Kปีที่แล้ว
Якщо ти займаєшся веб-розробкою, то маєш розуміти, як працює Інтернет. Це відео про DNS з відповідями на найбільш стандартн питання. У відео спробував відповісти на: ✅Звідки браузер знає на який з серверів зайти? ✅Звідки операційна система знає до якого DNS серверу звернутися? ✅ Що ми запрошуємо у DNS сервера? ✅ DNS використовує TCP чи UDP? ✅ Чи може DNS повернути декілька ip-адрес одночасно? ✅...
Як підтримати канал (варіанти спонсорства)?
มุมมอง 1.7Kปีที่แล้ว
Станьте спонсором цього каналу: th-cam.com/channels/hhNJ3SmzX_d7kMpSEMDfzg.htmljoin Допоможіть каналу розвиватися й отримуйте доступ до ексклюзивного контенту. Бери таку, щоб сума в нотифікації про оплату не дратувала тебе щомісяця. А краще, щоб навпаки приносила втіху, що це допомагає каналу розвиватися :). Весь основний контент буде доступний без спонсорства Обирай рівень: ✅Кадер-малюк ✅Архіт...
Як швидкість світла обмежує швидкість твого веб-сайту? Розбираємо на реальному прикладі
มุมมอง 12Kปีที่แล้ว
Якщо ти займаєшся веб-розробкою, то маєш розуміти, як працює Інтернет. Записав перше відео про це й почав з фундаментального обмеження - швидкост світла. У відео спробував відповісти на: ✅Що відбувається, коли ви заходите на сайт? ✅Чи буде колись такий Інтернет, щоб пінг до США був менше 100мс? ✅Як впливає швидкість світла на швидкість твого сайту? ✅Вплив TCP Handshake ✅Вплив TLS Handshake ✅Чом...
Як працює повнотекстовий пошук? Розбираємо на практиці інвертовані індекси
มุมมอง 13Kปีที่แล้ว
Розбір в деталях, як працюють інвертован індекси. Інвертован індекси використовуються для повнотектового пошуку в MySQL, PostgreSQL, Elastic Search та інших базах даних. Спробував відповісти на наступн питання: ✅Навіщо потрібн інвертован індекси й як їх можливості? ✅Чому не працюють звичайн індекси для повнотекстового пошуку? ✅Як влаштован інвертован індекси всередені? ✅Що таке стемінг й лемати...
Як працює Base64 й навіщо він потрібен?
มุมมอง 13Kปีที่แล้ว
Base64 один з самих популярних стандартів кодування бінарних даних у вигляд строки. У відео відповідаємо на питання: Спробував відповісти на наступн питання: ✅Навіщо потрібен Base64? ✅Як працює Base64 й чому об'єм даних зростає? ✅Чи буває Base32 та Base16 й навіщо він потрібен? ✅Що всередин JSON Web Token? ✅Чи передає Basic Auth пароль відкритим текстом? ✅Як закодувати картинку в Base64? ✅UUID ...
Як працюють індекси в базах на прикладі. MySQL vs Postgres. UUID vs Auto Increment.
มุมมอง 16Kปีที่แล้ว
На приклад розберемо роботу індексів в базах даних. Чому це варто знати й що це нам дає? Спробував відповісти на наступн питання: ✅Як працюють індекси? ✅Що таке кластерний індекс? ✅Різниця між MySQL та Postgres при робот з індексами? ✅Пару слів про MVCC й Heap Only Tuple ✅Чому UUID може з'їсти ваш гроші? ✅Що таке covering index? ✅Як OFFSET впливає на виборки? ✅Як індекси впливають на INSERT? Пр...
Хешування, кодування, шифрування. В чому різниця?
มุมมอง 10Kปีที่แล้ว
Хешування, кодування, шифрування - не плутай! Спробував відповісти на наступн питання: ✅Що таке хешування? ✅Що таке кодування? ✅Що таке шифрування? ✅Як ц поняття відрізнаються один від одного Станьте спонсором цього каналу: th-cam.com/channels/hhNJ3SmzX_d7kMpSEMDfzg.htmljoin Допоможіть каналу розвиватися й отримуйте доступ до ексклюзивного контенту. Зміст відео: 0:00 - Питання для перевірки 1:5...
Дерева. Пошук. Алгоритми. Бази даних
มุมมอง 12Kปีที่แล้ว
Це відео є підготовчим до більш глибокого занурення в бази даних. Спробував відповісти на наступн питання: ✅Що таке індекс в баз даних? ✅Чим відрізняються різн типи дерев? ✅Чому пошук по BST може бути повільним? ✅Чому бази даних не використовують бінарний пошук? ✅B-дерево проти B дерева ✅Індекси Postgres, MySQL Станьте спонсором цього каналу: th-cam.com/channels/hhNJ3SmzX_d7kMpSEMDfzg.htmljoin ...
3 важливі книги про проектування програмного забезпечення
มุมมอง 6Kปีที่แล้ว
Три книги про проєктування та архітектуру програмного забезпечення. Це т книги, з яких варто почати й як дадуть гарний фундамент. Кожна з книг дає можливість подивитися на розробку програм трохи під іншим кутом. Станьте спонсором цього каналу: th-cam.com/channels/hhNJ3SmzX_d7kMpSEMDfzg.htmljoin Допоможіть каналу розвиватися й отримуйте доступ до ексклюзивного контенту. Зміст відео: 0:00 - Вступ...
Навіщо потрібні індекси в базі даних? Розберемо на прикладі
มุมมอง 10Kปีที่แล้ว
Запланував серію відео про бази даних. Почнемо з простого🙂: ✅Чому ваш база працює повільно? ✅10 млн рядків в базі, чи це багато? ✅Навіщо потрібн індекси в базах даних? ✅Як працюють індекси в базах даних? Приклади коду з відео - github.com/koorchik/jabascript-materials/tree/main/how-database-indexes-work Станьте спонсором цього каналу: th-cam.com/channels/hhNJ3SmzX_d7kMpSEMDfzg.htmljoin Допоможі...
Чому алгоритми важливі? Розберемо на прикладі
มุมมอง 16Kปีที่แล้ว
Чому алгоритми важливі? Розберемо на прикладі
Головна проблема мікросервісів, яку часто недооцінюють
มุมมอง 12Kปีที่แล้ว
Головна проблема мікросервісів, яку часто недооцінюють
Навіщо глибоко розбиратися в речах й як менше забувати те, що вивчили?
มุมมอง 8Kปีที่แล้ว
Навіщо глибоко розбиратися в речах й як менше забувати те, що вивчили?
Як покращити Code Review? Як це робить Google?
มุมมอง 9K2 ปีที่แล้ว
Як покращити Code Review? Як це робить Google?
3 речі, що псують програміста
มุมมอง 15K2 ปีที่แล้ว
3 речі, що псують програміста
3 речі, які роблять програміста кращим
มุมมอง 18K2 ปีที่แล้ว
3 речі, як роблять програміста кращим

ความคิดเห็น

  • @IvanYermolenkoSS
    @IvanYermolenkoSS 2 วันที่ผ่านมา

    Дуже цікаво, дякую!

  • @dmytriyenkovyacheslav3804
    @dmytriyenkovyacheslav3804 7 วันที่ผ่านมา

    Це, скоріше, ті речі які взагалі із фахівця роблять програміста як такого. Про дані момнети багато говорять, але ж це стандартні речі для студентів наших ВНЗів на профільних факультетах, наприклад, курс Основи програмної інженерії, або Конструювання ПЗ. Дивно, що потім чути голоси про те, що університет "нічого не дав"

    • @AboutProgramming
      @AboutProgramming 6 วันที่ผ่านมา

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

    • @dmytriyenkovyacheslav3804
      @dmytriyenkovyacheslav3804 6 วันที่ผ่านมา

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

  • @vitaliivostotskyi9855
    @vitaliivostotskyi9855 8 วันที่ผ่านมา

    Algorithms + Data Structures = Programs

    • @AboutProgramming
      @AboutProgramming 6 วันที่ผ่านมา

      З одного боку так, але з іншого це як сказати білки+жири+вуглеводи=їжа. Тобто, це знання не зробить людину кухарем, хоча кухар має це знати. Хоча людина може готувати й без цього знання (як програмісти писати код). Але так, алгоритми й структури даних це важлива складова. Я би як мінімум додав ще requirements (problem definition)

    • @vitaliivostotskyi9855
      @vitaliivostotskyi9855 6 วันที่ผ่านมา

      @@AboutProgramming то просто цитата , вірніше назва книги Ніклауса Вірта, там хоч і на Паскалі, і трохи застаріло, але добре описані алгоритми :) Ну як фраза теж цілком заслуговує на життя, але я на 1000 % погоджуюсь що у SDLC сучасного програміста робота з доменом та верифікація та уточнення вимог, а також вміння працювати з людьми - це ключові скіли, які просто унеможливлюють якісну роботу. Requirements elicitation присвячено багато книг, я маю Карла Вігерса ( розробка вимог до програмного забезпечення), чим є досить задоволений та всім раджу до прочитання :)

  • @vitaliivostotskyi9855
    @vitaliivostotskyi9855 9 วันที่ผ่านมา

    Якщо я правильно зрозумів, то корінь, фундамент це алгоритми і структури даних, конкретні парадигми чи підходи( як то reactive, event-driven) , на вірхівці яких виростають фреймворки, сюди ж можна додати основи мереж, основи операційних систем та архітектуру, тобто в принципі це та база, що закладається , хоч і не дуже глибоко, класичними технічними університетами. І туди ж алгерба, комбінаторика, дискретна математика....і ще щось про людей, бо основні проблеми, принаймні з мого досвіду, це не стільки вирішити інженерну задачу, скільки порозумітись з командою та менеджментом....

    • @AboutProgramming
      @AboutProgramming 6 วันที่ผ่านมา

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

    • @vitaliivostotskyi9855
      @vitaliivostotskyi9855 6 วันที่ผ่านมา

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

    • @AboutProgramming
      @AboutProgramming 6 วันที่ผ่านมา

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

    • @vitaliivostotskyi9855
      @vitaliivostotskyi9855 6 วันที่ผ่านมา

      @@AboutProgramming У мене те саме :) як би грубо це не звучало, але до деяких книг треба "дорости", бо воно все буде виглядати як скаральний манускрипт з закляттями на втраченій мові. Теж час від часу перечитую книги, особливо коли виходять якісь нові версії, де автор щось переосмислив або по фідбеку від читачів розкрив якусь частину більш глибоко.

  • @vitaliivostotskyi9855
    @vitaliivostotskyi9855 9 วันที่ผ่านมา

    Гарний підхід до ревʼю, структурований. Чув, що в Google є своя екосистема тулів для роботи з кодом, підкажіть, будь ласка, чи використовуються якісь внутрішні розробки для стрес тестування та статичного аналізу, чи перевага надається рішенням по типу SonarCube/SonarCloud etc?

  • @vitaliivostotskyi9855
    @vitaliivostotskyi9855 9 วันที่ผ่านมา

    На мою субʼєктивну думку, справжня інженерна культура, що є supportive та collaborative, притаманні тільки зрілим продуктовим компаніям з упором на якість, такі як Boeing ( не беручи до уваги декілька останніх інцидентів, але всьому виною політики компанії по знищенню власних процесів якості заради оптимізації витрат) Nvidia, Google, IBM, Intel, можливо ще опенсорс, та компанії з упором на RND та інновації. Тож треба заслужити можливість працювати в таких середовищах :)

  • @vitaliivostotskyi9855
    @vitaliivostotskyi9855 9 วันที่ผ่านมา

    Догми це про створення карго-культів, мабуть, це особливість людського мозку, все спрощувати, чи навпаки ідеалізувати, ну і перекласти відповідальність за реалізацію :)

  • @s.kimura.0078
    @s.kimura.0078 10 วันที่ผ่านมา

    Програміста зіпсує перекваліфікація в штурмовика. Зіпсує у всіх контекстах слова «зіпсує»…

    • @AboutProgramming
      @AboutProgramming 9 วันที่ผ่านมา

      На жаль, не тільки програміста

  • @rostykwave
    @rostykwave 11 วันที่ผ่านมา

    Дуже круто пояснюєте, дякую! Це захопливо!

  • @anton.plotkin
    @anton.plotkin 25 วันที่ผ่านมา

    Останнє що читав то талмуди Кнута років 20-25 тому, тоді здорово відбили бажання щось читати з програмування, дуже важкі були. Треба почати щось знову читати.

  • @chavychaze9366
    @chavychaze9366 หลายเดือนก่อน

    шок! Іду вчити алгоритми

  • @RomanKozerenko
    @RomanKozerenko หลายเดือนก่อน

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

    • @AboutProgramming
      @AboutProgramming 10 วันที่ผ่านมา

      Не розумію про зростання деревра швирину. Було б цікаво більш детальне пояснення. btree завжди збалансоване й по ідеї, після запису вже буде дуже близький перформанс при пошуку по індексу, що при послідовному, що при рандомному UUID. Для мене зрозуміло, що послідовний uuid підвищує cache hit при записі, коли індекс вже не влазить в пам'ять (оскільки потрібний блок може бути вже в кеші), а от відносно читання глибина дерева буде дуже близька за рахунок автобалансування

    • @AboutProgramming
      @AboutProgramming 10 วันที่ผ่านมา

      Але рекомендація використовувати послідовний UUID гарна, бо на запис це впливає суттуєво, коли кеш повний. Єдине, тут можуть бути нюанси від сценарій використання. Якщо це для токенів чи для генерації session id, то треба зважати на те, наскільки випадковим буде згенерованим UUID. Це впирається в кількість випадкових бітів й в те, чи генератор випадкових чисел є криптографічно безпечним

  • @kwifyep
    @kwifyep หลายเดือนก่อน

    Цікава думка, дякую за відео

  • @ghostyshka
    @ghostyshka หลายเดือนก่อน

    майсіквел🤕

    • @AboutProgramming
      @AboutProgramming หลายเดือนก่อน

      www.dbvis.com/thetable/sql-or-sequel/#:~:text=SQL%20can%20be%20pronounced%20as,(Structured%20English%20Query%20Language).

  • @Danylo-z7w
    @Danylo-z7w 2 หลายเดือนก่อน

    Найкращий, тепер знаю що треба було відповідати на захисті диплому!

  • @TentakliUA
    @TentakliUA 2 หลายเดือนก่อน

    В Mate Academy немає C# 😢

    • @AboutProgramming
      @AboutProgramming 2 หลายเดือนก่อน

      Так, на жаль, поки немає

  • @bubobubo1558
    @bubobubo1558 2 หลายเดือนก่อน

    у вас невелика помилка. якщо в конторі 100 людей, це не 100 чатів. це 4950 чатів :)

  • @АнПл
    @АнПл 2 หลายเดือนก่อน

    Максимально не коректне відео, зроблено людиною, що дуже далека від сучасних технологій і тим паче мережевої маршрутизації. 1. Як зловмисник потрапив в одну мережу з жетвою? 2. людина що налаштовувала "Free-wifi" робить forward clien to clien и forward local? на які фуагра дозвольте запитати це робити? 3. підключившись до "халявного wifi" в майже будь якому закладі arp запит покаже вас і шлюз. На цьому моменті відео можна закривати. В момент "встановлення з'єднання" і вдалої авторизації ваш роутер як раз і дає всі налаштування, а далі ви в тунелі між роутером у шлюзом. Теоретично можливо створити точку доступу з такою самою назвою і таким самим паролем і "підійшовши ближче до "жертви" стати його роутером. Як раз застосувавши метод забивання пула dhcp, але на такі випадки має стояти вочдог, і слати алярми, що пул забитий, і треба втручання адміна цього всього :)

    • @AboutProgramming
      @AboutProgramming 2 หลายเดือนก่อน

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

    • @AboutProgramming
      @AboutProgramming 2 หลายเดือนก่อน

      Дякую, що додали пункти. Раджу подивитися відео повністю, а не закривати, бо в другій половині показано на практиці, як це все працює. Але давайте по пунктам: 1. У відео я говорю про публічні мережі на прикладі мережі кафе. Тобто можна просто взяти й зловмисник може підключитися до вайфай мережі так само, як й будь-який інший клієнт кафе. 2. Не зрозумів про forward local. Це до чого? 3. Ви кажете "arp запит покаже вас і шлюз", але тут у вас плутанина, оскільки arp запит це широкомовний запит для того, щоб отримати мак адресу з айпі адреси. Тобто вже треба знати айпі адресу шлюза й мати налаштування мережі, а налаштування якраз видає dhcp сервер ще до arp запитів.

    • @АнПл
      @АнПл 2 หลายเดือนก่อน

      @@AboutProgramming а чим відрізняється "відкритий wifi" від "закритого"? P2P не працює, FWD to Local також. Як при такому налаштуванні Ви пропхнете ваш броадкаст? Куда ви його будете посилати в шлюз?

    • @AboutProgramming
      @AboutProgramming 2 หลายเดือนก่อน

      @@АнПл Я про публічний вайфай в кафе говорю, до якого може підключитися будь-який клієнт кафе (але він може бути відкритим чи за паролем, без різниці). Відносно механізмів захисту, то професійний адмін зможе налаштувати правильно мережу в кафе, але це стається дуже дуже рідко. Можете розкрити до чого тут arp й мережева маршрутизація? Й що "максимально некоректно" в відео?

    • @АнПл
      @АнПл 2 หลายเดือนก่อน

      ​@@AboutProgrammingнавіть самі примітивні роутери зараз вміють 2 мережі: 1. локальна мережа - основна 2. гостьова мережа - вона як правило і є мережею для клієнтів, ця мережа на всіх роутерах, крім ну зовсім китайского китаю з ізольованими клієнтами без доступа до мережі та один до одного. Як буде працювати бродкаст в такому разі? Те що ви описуєте було актуально 10-15 років назад. P.s. Про арп я написав, вказуючи на те, що в гостьовій мережі (читайте мережі для клієнтів) НІКОГО не буде поряд, Ви ІЗОЛЬОВАНІ від всього крім шлюзу і це реалізовано галочками в налаштуваннях і ті як правило по замовченню зняті і якщо відкрити розширені налаштування, тоді їх можна поставити, туди люди з слабкими знаннями не лізуть.

  • @everysomebody
    @everysomebody 2 หลายเดือนก่อน

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

  • @ruslanways
    @ruslanways 2 หลายเดือนก่อน

    Звук з рухом губ не співпадає. Затримка йде.

    • @AboutProgramming
      @AboutProgramming 2 หลายเดือนก่อน

      Так, проблема карти захоплення була. Купив вже нову

  • @king.shark.g
    @king.shark.g 3 หลายเดือนก่อน

    Дуже цікаво але нічого не зрозуміло 🥲😅

    • @AboutProgramming
      @AboutProgramming 3 หลายเดือนก่อน

      Ну, половину справи я зробив - зацікавив. Залишатися друга половина)

  • @2013777ok
    @2013777ok 3 หลายเดือนก่อน

    Чути добре, все супер

  • @anton.plotkin
    @anton.plotkin 3 หลายเดือนก่อน

    А звичайний індекс для запитів типу LIKE '%word' теж працювати швидко не буде, не тільки для LIKE '%word%' тобто сортування зворотнє він же не вміє?

    • @AboutProgramming
      @AboutProgramming 3 หลายเดือนก่อน

      Звичайний індекс може працювати, але це має бути ще один індекс по reverse(column) ну й відповідно треба робити reverse на запит. Відносно зворотнього сортування, то можна зробити через desc в описі індексу, але це не про перевертання строк й відповідно не допоможе для цього кейсу

    • @anton.plotkin
      @anton.plotkin 3 หลายเดือนก่อน

      @@AboutProgramming ну я саме про це і питав, що той індекс який в нас створений на поле name він не працює для такого запиту (зворотнім сортуванням назвав саме сортування по реверсу), просто з відео чогось зрозумів, що він має працювати і що не можна шукати лише по %word%. Тепер зрозумів, що треба створити інший індекс для цього.

  • @anton.plotkin
    @anton.plotkin 3 หลายเดือนก่อน

    Контент взагалі неочікувано глибокий! Дякую! До речі манера спілкування сильно нагадує лікаря Габореця з Facebook Reels) прям максимально у вас схожі патерни, хоча теми взагалі різні)

    • @anton.plotkin
      @anton.plotkin 3 หลายเดือนก่อน

      Ще такий нюанс, я ото вчора вас слухав і щось в мене в голові був якийсь смутний спогад, що це не так для мускуля (тобто не зберігається pk в індексах). Сьогодні до мені дійшло чого так. Те що Ви розповідаєте стосується innodb, а в нас до сих пір myisam :) на production, і ось там воно в індексах не зберігає pk, якщо пам'ять мене не підводить..

    • @AboutProgramming
      @AboutProgramming 3 หลายเดือนก่อน

      Так, все вірно, це innodb, він зараз по дефолту. myisam я зараз практично не використовую) без транзакцій, блокування всієї таблиці при записі, немає підтримки foreign keys, кораптиться значно частіше. Цікаво чому myisam обрали для себе?

    • @anton.plotkin
      @anton.plotkin 3 หลายเดือนก่อน

      @@AboutProgramming ну обирали ще до мене в 2010-му :) бо тоді щось був у хлопців поганий досвід з innodb, продукт старенький, поміняти рушій все руки не доходять (таблички великі, їх багато, конвертація на декілька днів, а сервіс тушити не хочеться та й зламати теж), так і живемо До речі, взагалі жодного разу не кораптнулось за 14 років, а ось повний лок таблиць це так, є така проблема

    • @AboutProgramming
      @AboutProgramming 3 หลายเดือนก่อน

      Здається, що myisam було тоді ще дефолтом в MySQL, хоча я на innodb ще з 2007)

    • @anton.plotkin
      @anton.plotkin 3 หลายเดือนก่อน

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

  • @contatnoman6782
    @contatnoman6782 3 หลายเดือนก่อน

    Гарний контент, дякую за розвиток українського ютубу! На 33:10 видно що стеммер якось не так працює)

  • @alex-v7e6v
    @alex-v7e6v 3 หลายเดือนก่อน

    просто бомба, особливо частина з wire shark. дуже, дуже дякую!

  • @rkiyanchuk
    @rkiyanchuk 3 หลายเดือนก่อน

    Дякую за відео, мені здається воно гарно висвітлює чимало криптографічних концептів на інтуїтивному рівні! Зроблю кілька важливих уточнень стосовно криптографії: Про RSA: Не коректно говорити, що ключі RSA є рівнозначними чи що їх можна взаємно заміняти. Це розповсюджене помилкове сприйняття через надмірне спрощення алгоритму RSA. В алгоритмі є відкрита та приватна *експоненти* (не ключі) які зазвичай помічають як `e` та `d`, тоді базове перетворення RSA спрощено можна записати наступним чином:

 C ≡ M^e mod N; M ≡ C^d mod N ≡ M^e^d mod N ≡ M^(e*d) mod N ≡ M (оскільки M^(ϕ(n)) ≡ 1 mod N). І виглядає, як ніби значення e та d можна взаємозаміняти, оскільки операція множення є комутативною. Ці експоненти також часто називають "ключами", хоча це неправильно - вони є лише складовими відкритого та приватного ключа. Відкритий ключ складається зі значень (N, e), тобто модуля та відкритої експоненти, а приватний ключ: мінімум із значень (N, d) (на практиці їх більше). Проте описане вище перетворення є виключно теоретичним і на практиці не використовується в такому виді. Це ще називають "Textbook RSA", бо зазвичай з цього починають пояснення _теорії_ алгоритму RSA в книжках з криптографії. У реальних сучасних системах RSA завжди має доповнення (padding) без якого алгоритм не є надійним, відкрита експонента фіксована наперед і дорівнює 0x10001 (переважно повʼязано з оптимізацією операції шифрування та захисту від різного роду атак), а приватний ключ складається з більшої кількості значень: N, e, d, а також p, q (множники модуля), та ще кілька похідних значень що використовуються для оптимізації обчислень).

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

 Для відкритого ключа: $ 
openssl rsa -in pub.key -pubin -noout -text Для приватного ключа: $ openssl rsa -in priv.key -noout -text

    • @rkiyanchuk
      @rkiyanchuk 3 หลายเดือนก่อน

      Про випадкові та псевдовипадкові числа: Числа згенеровані math.random() не можна використовувати для шифрування не тому, що вони псевдовипадкові. В псевдовипадкових числах загалом немає нічого поганого, і більшість криптографічних ключів в сучасних системах згенеровані саме з *псевдовипадкових* чисел. Чому ж їх називають *псевдо*-випадковими? Створення випадкових чисел - насправді дуже глибока тема, але спробуємо спростити. Справді випадкові числа (True Random Numbers) - це числа які жодним чином неможливо передбачити і які не відповідають жодному закону чи алгоритму. Скільки б випадкових бітів ви не отримували, ви ніколи не зможете передбачити наступний біт, або віднайти біти що передували їм. Зазвичай такі числа можна отримати лише шляхом спостереження недетермінованих хаотичних фізичних процесів (як Cloudflare це робить з лавалампами: www.cloudflare.com/learning/ssl/lava-lamp-encryption ). Але по-перше, для генерування таких чисел потрібне спеціалізоване апаратне забезпечення, по-друге - інколи нам *потрібно* мати змогу відновити послідовність або детерміновано згенерувати її (інакше для узгодження ключів нам завжди доводилося б передавати розмір ключів що дорівнює розміру повідомлення!). Для цього використовуються *криптографічно стійкі генератори псевдовипадкових чисел* і їх задача - згенерувати числа детермінованим алгоритмом, проте які б в практичному застосуванні ніяк не відрізнялись би від справді випадкових (indistinguishable from true random). Вони не є справді випадковими (бо згенеровані за певним алгоритмом), але виглядають випадковими за всіма ознаками які ми можемо спостерігати, тому вони "псевдовипадкові". Для якісних псевдовипадкових чисел ми так само не можемо ні передбачити майбутні згенеровані числа, ні відновити попередні, скільки б згенерованих чисел ми не спостерігали (лише в практичному сенсі; теоретично для псевдовипадкових чисел насправді завжди є певна кількість, отримавши яку ми змогли б передбачити наступні, та про це далі). Але є одне "але" - звичайно ж псевдовипадкові числа мають якось відрізнятись від "трушних" випадкових, інакше ми б не називали їх "псевдо"-випадковими. І ця відмінність - наявність скінченного періода. Коли ми спостерігаємо за непередбачуваним фізичним процесом - отримані (true) випадкові числа НІКОЛИ не повторяться. Але генератор *псевдо*-випадкових чисел завжди рано чи пізно почне повторювати згенеровану послідовність. Кожний генератор випадкових чисел починає роботу з якогось початкового значення (seed) і теоретичний максимум періоду напряму залежить від нього: для початкового значення розміром в n біт максимальний період згенерованої послідовності буде 2^n, після цього послідовність гарантовано повториться. Цим і відрізняються псевдовипадкові числа від "справді" випадкових. Звичайно для криптографічних застосувань нам потрібно мати великий період щоб впевнитись, що на практиці згенеровані псевдовипадкові числа не повторювались.
 Але що ж тоді не так з math.random() та іншими генераторами випадкових чисел що не є криптографічно стійкими? Такі генератори зазвичай забезпечують лише одну єдину властивість випадкових чисел - рівномірний розподіл. І цього вистачає для більшості застосувань, як то симуляції чи неазартні ігри. Проте такі генератори часто є лінійними, і отримавши певну кількість згенерованих ними чисел ви зможете передбачити всі майбутні та відновити минулі числа, згенеровані з даного початкового значення. Наприклад у випадку генератора Mersenne Twister достатньо отримати 624 значення щоб зуміти передбачити усі наступні згенеровані числа. Також мушу виправити, що ChaCha20 розробив все ж не Google, а незалежний криптограф Деніел Бернштейн. Можливо малося на увазі що Google його застосовує :) Проте цей шифр один з двох, що підтримується в TLS 1.3, тож користується ним насправді багато хто :) Для розробників яким цікаво більше дізнатися про криптографію рекомендую книгу "Serious Cryptography" " від Жана Аумассона, якраз нещодавно вийшла оновлена друга редакція: nostarch.com/serious-cryptography-2nd-edition

    • @AboutProgramming
      @AboutProgramming 3 หลายเดือนก่อน

      Коментар - топ! Дякую! Так, коли вже виклав відео, то спробував реалізувати руками RSA алгоритм на невеликих простих числах. Так, операції комутативні й основна частина публічного ключа це N й цей модуль однаковий для операцій в обидві сторони. Тобто на практиці його не можна зробити приватним. Тобто матиматично операції шифруваня й розшифрування відбувається однаково (тільки в одному випадку e, в другому d), але зробити d публічним не вийде, бо вся складність взлому впирається не в "е" (яка є стандартизованою екпонентою), а в розкладі N на множникі p та q

    • @AboutProgramming
      @AboutProgramming 3 หลายเดือนก่อน

      @@rkiyanchuk Коментар про випадкові числа просто краса. Ніколи не думав про скічненність послідовності. Думав, що все впирається в генератор (чи можна по послідовності передбачити наступні числа) й криптографічний сід, що джерелом має бути справжеє випадкове число, що базується на якомусь зовнішньому інпуті (з фізичного світу). Відносно ChaCha20, це я наплутав. Можливо через RFC 7539, який від Гугла, й здається Гугл займався додаванням ChaCha20 в OpenSSL. Запінив коментар, має бути корисно для всіх глядачів цього відео. Круті коментарі! Дуже дякую за виправлення та доповнення!

    • @rkiyanchuk
      @rkiyanchuk 3 หลายเดือนก่อน

      Саме так, і тут ми логічно підходимо до загрози квантового компʼютера 😉😄

  • @mirooo6243
    @mirooo6243 3 หลายเดือนก่อน

    Дуже цікаво!

  • @nikiforovpizza
    @nikiforovpizza 3 หลายเดือนก่อน

    Хороше відео, дякую за роботу!

  • @oleksiymiyskiy4694
    @oleksiymiyskiy4694 3 หลายเดือนก่อน

    А приклад леметизатора є? Був би вдячний

    • @AboutProgramming
      @AboutProgramming 3 หลายเดือนก่อน

      Був в NLTK наскільки пам'ятаю для англійської. Для української не пам'ятаю чи є щось (стемери точно є), для російської є mystem, який працює по морфологічним правилам. Але я так давно дивився на них, що й не пам'ятаю. В більшості випадків стемер підходить

    • @oleksiymiyskiy4694
      @oleksiymiyskiy4694 3 หลายเดือนก่อน

      @@AboutProgramming а є щось подивитись як для української мови стеммер зробити? Хотілось наш пошук на сайті покращити в рази. Використовуємо базу постгрес. Бо в нас пошук по назві документу і по вмісту документу. Був би дуже вдячний. Або почитати як самому його зробити

    • @AboutProgramming
      @AboutProgramming 3 หลายเดือนก่อน

      @@oleksiymiyskiy4694 знаходив таке github.com/amakukha/stemmers_ukrainian , але щоб конкретне порадити, то складно. Якщо потрібен просто пошук, то ніби є під еластік готове www.elastic.co/guide/en/elasticsearch/plugins/current/analysis-ukrainian.html

  • @bvs-16
    @bvs-16 3 หลายเดือนก่อน

    Не знаю як я пропустив це відео, зазвичай дивлюсь кожне відразу після публікації. Дякую, тепер стало зовсім зрозуміло що воно таке той DNS

    • @AboutProgramming
      @AboutProgramming 3 หลายเดือนก่อน

      Дякую за відгук. Радий, що вийшло корисно)

  • @oleksandrdemchenko482
    @oleksandrdemchenko482 3 หลายเดือนก่อน

    Ти хто взагалі ?таке враження що ти якийсь аферист? дай думаю займусь блогінгом, якась теорія , на кладoчці під під'їздом бабці у мене розмовляють... Дивився попередні про криптографію: а він такий я не спеціаліст в криптографії, але розкажу що це як не дeза?

    • @AboutProgramming
      @AboutProgramming 3 หลายเดือนก่อน

      А що саме деза? Що я не криптограф чи базові концепції криптографії?) Я просто працюю з криптографію зі сторони програмної інженерії й інформаційної безпеки, ніж як криптограф математик. Але уявив собі, як можна було б з бабцями біля під'їзду робити влог для Ютубу)) Відносно мого попереднього досвіду, то трохи тут було th-cam.com/video/JE7mzAVm5bk/w-d-xo.htmlsi=QL9fuJ4bh_NpGktx

    • @oleksandrdemchenko482
      @oleksandrdemchenko482 3 หลายเดือนก่อน

      @@AboutProgramming добре прийнято,якщо шо,то я вибачаюсь...

  • @тимур_атмосферный
    @тимур_атмосферный 3 หลายเดือนก่อน

    Дуже цікава інформація, дякую. Єдино що хотілося б текст трошки більше і розбірливіше

    • @AboutProgramming
      @AboutProgramming 3 หลายเดือนก่อน

      Дякую за відгук. Відносно розбірливості, то це прям мій баг. Але я працюю на цим)

  • @назарійгригоришин
    @назарійгригоришин 3 หลายเดือนก่อน

    Круто розказуєш!👍🔥🔥

  • @yogalenovo8262
    @yogalenovo8262 3 หลายเดือนก่อน

    Мало щось знати, ще треба вміти донести думку... У автора з цим проблеми.

    • @AboutProgramming
      @AboutProgramming 3 หลายเดือนก่อน

      А з розумінням чого саме виникають складнощі? Можливо є конкретно якісь аспекти, де було незрозуміло?

  • @Andrew-nh9he
    @Andrew-nh9he 3 หลายเดือนก่อน

    Асиметричні ключі не працюють в дві сторони, працює тільки в одну сторону

    • @AboutProgramming
      @AboutProgramming 3 หลายเดือนก่อน

      В яку саме?

    • @Andrew-nh9he
      @Andrew-nh9he 3 หลายเดือนก่อน

      Публічний ключ шифрує, а приватний разшифровує - в іншу сторону не працює

    • @AboutProgramming
      @AboutProgramming 3 หลายเดือนก่อน

      Не зовсім так. Аби шифрували тільки публічними ключем, тоді не працював би цифровий підпис, бо будь-хто його змін би підробити (оскільки всі мають публічний ключ)

    • @Andrew-nh9he
      @Andrew-nh9he 3 หลายเดือนก่อน

      @@AboutProgramming Ага, там трошки інакше, у кожного свій приклад просто в голові з'явився У випадку з цифровим підписом приватний ключ використовується для підпису (шифрування хешу), а публічний ключ - для його розшифрування. У передачі даних (наприклад, через HTTPS) асиметричне шифрування використовується дещо по-іншому: Публічний ключ використовується для шифрування даних, Приватний ключ використовується для розшифрування цих даних

    • @AboutProgramming
      @AboutProgramming 3 หลายเดือนก่อน

      Не зовсім так. В https публічний ключ для шифрування даних не використовується, дані шифруються симетричними ключем AES або Chacha20. Раніше публічним ключем шифрували симетричний ключ, але зараз такого теж не роблять, бо це не дає perfect forward secrecy. Тому зараз DHKE для обміну симетричним ключем це стандарт в HTTPS. А от в PGP симетричний ключ шифрується публічним, але самі дані теж шифруються симетричним

  • @maxyablochkin-0505
    @maxyablochkin-0505 3 หลายเดือนก่อน

    Привіт з Кривого Рогу 👋

  • @mari_a9004
    @mari_a9004 3 หลายเดือนก่อน

    Дякую Вам за Ваш труд 👍🏻

  • @Virass
    @Virass 4 หลายเดือนก่อน

    Коли Віктор заговорив про слона в кімнаті і почав розказувати про доставку публічного ключа, я в цей момент - ну нічого собі, невже мій "казанок" варить як треба...

  • @donutWiggum
    @donutWiggum 4 หลายเดือนก่อน

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

  • @ivanovserg8795
    @ivanovserg8795 4 หลายเดือนก่อน

    Після дельта-компресії подумав що можна у чисел перейти з основи 0-9 на основу 0-F, а потім подумав ще, та можна ще більшу основу взяти, щоб само число було представлено меншою кількістю символів.. Ну й по суті отримаємо у чисел основу = 255, а враховуючи що треба зберігати якось кількість потрібних символів з прапором-бітом то й отримаємо ото саме VByteCompression. Начебто все зрозуміло.. Супер, дякую за відео!

  • @cyber_scripter
    @cyber_scripter 4 หลายเดือนก่อน

    Дякую!

  • @TVV14
    @TVV14 4 หลายเดือนก่อน

    Чудове відео, дуже інформативно і корисно! Так тримати, Вікторе!

  • @olexiy-not-alexey
    @olexiy-not-alexey 4 หลายเดือนก่อน

    Тема супер. Дуже подобається, як розклав все по поличках!)

  • @lymphbizkit4344
    @lymphbizkit4344 4 หลายเดือนก่อน

    Це крутяк, ви просто неймовірний, чекаю на нові відео !!!!!

  • @shramko-dev
    @shramko-dev 4 หลายเดือนก่อน

    А що у вас за камера?

    • @AboutProgramming
      @AboutProgramming 4 หลายเดือนก่อน

      Це відео знімав на Fuji X-E4 + об'єктив XC 15-45mm. Всі відео з минулого року робив на iPhone. Фон зробив через зелений екран