Только это уточнение противоречит написанному в статье ("Инновация заключалась в том, что сам шифруемый текст выступал как составляющая ключа. Подобный метод используется до сих пор и сегодня называется «автоключ» или «самоключ» [...] "шифр будто оживает и сам берет все необходимое из исходного сообщения.") и не имеет никакого отношения к термину "автоключ".
Я все это к тому, что абзац (полтора абзаца, точнее) про автоключ вообще лишний и только вводит в заблуждение. Он явно был добавлен, чтобы показать разницу между шифрами Порта и Виженера, но она совсем не в том, что у Порта шифр с циклически применяемым ключом, а у Виженера с автоключом. У Порта биграммный шифр, где роль ключа сводится к первичному формированию таблицы (и она вообще может быть заполнена любыми символами), а для получения очередного зашифрованного символа используются не очередные символы открытого текста и ключа, а нечетные и четные символы открытого текста. Виженер просто технологичнее, в этом вся его инновация.
Шифр Виженера и шифр с автоключом — это в общем случае разные вещи, которые не надо смешивать, в классическом Виженере используется просто циклически записываемый ключ. Причем абзацы вокруг рисунка "Многострочная таблица Виженера " содержат взаимоисключающие положения: до рисунка фантастика про автоключ, после — вполне традиционное описание. Такое ощущение, что копипастилось из разных источников.
И вариант его модификации для автоключа тоже странно описан, вторая буква открытого текста не "используется для защиты первой", даже в случае ключа из 1 символа все строго наоборот. Сначала берется первичный ключ, N символами которого шифруется первые N символов текста, начиная с N+1 текст шифруется символами исходного текста. Т.е. в вырожденном случае (N=1) первая буква открытого текста используется для шифрования второй, а сама шифруется одним символом, что, кстати, делает взлом тривиальным.
В последнем примере, конечно, не пахнет ни коболом, ни ассемблером. Последний скриншот - вообще нормальный код на чистом С, предпоследний - просто пачка описаний функций из DLL. Веселые имена функций sub_100500 - действительно скорее всего результат дизассемблирования.
Что забавно, в PerpetualVL2024 отдается более свежая версия, чем в Current, 16.0.17628.20116, так что от шаманства с заменами прямо сейчас пользы никакой.
Например, честно купленный у MS. Или (как всегда, исключительно для личных или самообразовательных целей) vlmcsd, спокойно лежащий и на гитхабе, и на докерхабе.
Ну только стоило упомянуть, что вариант с get.activated.win/Ohook ненавязчиво скачивает полумегабайтный cmd-файл, который в процессе установки разворачивает из base64 и вкручивает в систему sppc64.dll/sppc32.dll, что может слегка напрячь приверженцев строго "родных" решений.
Да, оно опенсорсное, и можно проделать все то же вручную, но со своим KMS-сервером как-то спокойней.
При первом включении 2FA для Google-аккаунта тоже сначала привязывают телефон, только потом дают выбрать другие варианты. Фейсбук с твиттером вроде бы тоже так себя ведут, давно не проверял. Так что попавший под раздачу Github тут скорее приятное исключение.
Эти TOTP-аутентификаторы сейчас завезли примерно в каждый парольный менеджер, не считая кучи отдельных оперносорсных приложений, ни одно из которых не привязано к телефону. Причем TOTP в браузере (и вообще на основном устройстве) — так себе идея, слегка противоречащая двухфакторности.
Поэтому заголовок про обход обязательной привязки к телефонному номеру просто некорректен, речь просто об использовании еще одной штатной возможности.
Виртуальные функции сплошь и рядом вызывают в своем же классе, достаточно заглянуть в любой фреймворк. Такой вызов — это расчет на то, что в будущем ее кто-нибудь при необходимости сможет перегрузить.
Говоря о том, что их обычный вызов не отличается от других функций и разница проявляется только при вызове через указатели, Шилдт как-то забыл упомянуть, что обычный вызов из члена класса — это и есть вызов через указатель this.
Кстати, строго говоря, в вопросе виртуальная функция вызывается не из конструктора/деструктора предка, а из конструктора/деструктора потомка, что в рамках этого кода к проблемам с неожиданным поведением не приведет, хотя и закладывает мину на будущее.
Т.е. вызвать их не проблема с точки зрения синтаксиса, только работать они будут как простые функции, что может оказаться не совсем тем, что ожидал програмист.
Не удивлюсь, если Шилдт забыл об этом упомянуть, такие зевки для него очень характерны.
Забавно, что сам Томлинсон забыл не только содержимое письма, но и точную дату — в 2010 он вспоминал, что вначале вообще где-то ляпнул про 1972, потом «провел исследования и выяснил, что дело должно было быть в 1971», так что долгое время писали просто про конец 1971.
Т.е. для него это просто была обычная рутина, идея застолбить место в истории совершенно не волновала.
Только это уточнение противоречит написанному в статье ("Инновация заключалась в том, что сам шифруемый текст выступал как составляющая ключа. Подобный метод используется до сих пор и сегодня называется «автоключ» или «самоключ» [...] "шифр будто оживает и сам берет все необходимое из исходного сообщения.") и не имеет никакого отношения к термину "автоключ".
Я все это к тому, что абзац (полтора абзаца, точнее) про автоключ вообще лишний и только вводит в заблуждение. Он явно был добавлен, чтобы показать разницу между шифрами Порта и Виженера, но она совсем не в том, что у Порта шифр с циклически применяемым ключом, а у Виженера с автоключом. У Порта биграммный шифр, где роль ключа сводится к первичному формированию таблицы (и она вообще может быть заполнена любыми символами), а для получения очередного зашифрованного символа используются не очередные символы открытого текста и ключа, а нечетные и четные символы открытого текста. Виженер просто технологичнее, в этом вся его инновация.
Шифр Виженера и шифр с автоключом — это в общем случае разные вещи, которые не надо смешивать, в классическом Виженере используется просто циклически записываемый ключ. Причем абзацы вокруг рисунка "Многострочная таблица Виженера " содержат взаимоисключающие положения: до рисунка фантастика про автоключ, после — вполне традиционное описание. Такое ощущение, что копипастилось из разных источников.
И вариант его модификации для автоключа тоже странно описан, вторая буква открытого текста не "используется для защиты первой", даже в случае ключа из 1 символа все строго наоборот. Сначала берется первичный ключ, N символами которого шифруется первые N символов текста, начиная с N+1 текст шифруется символами исходного текста. Т.е. в вырожденном случае (N=1) первая буква открытого текста используется для шифрования второй, а сама шифруется одним символом, что, кстати, делает взлом тривиальным.
В последнем примере, конечно, не пахнет ни коболом, ни ассемблером. Последний скриншот - вообще нормальный код на чистом С, предпоследний - просто пачка описаний функций из DLL. Веселые имена функций sub_100500 - действительно скорее всего результат дизассемблирования.
Что забавно, в PerpetualVL2024 отдается более свежая версия, чем в Current, 16.0.17628.20116, так что от шаманства с заменами прямо сейчас пользы никакой.
Статья все-таки про LTSC, для которой KMS прекрасно работает.
Например, честно купленный у MS. Или (как всегда, исключительно для личных или самообразовательных целей) vlmcsd, спокойно лежащий и на гитхабе, и на докерхабе.
Ну только стоило упомянуть, что вариант с get.activated.win/Ohook ненавязчиво скачивает полумегабайтный cmd-файл, который в процессе установки разворачивает из base64 и вкручивает в систему sppc64.dll/sppc32.dll, что может слегка напрячь приверженцев строго "родных" решений.
Да, оно опенсорсное, и можно проделать все то же вручную, но со своим KMS-сервером как-то спокойней.
При первом включении 2FA для Google-аккаунта тоже сначала привязывают телефон, только потом дают выбрать другие варианты. Фейсбук с твиттером вроде бы тоже так себя ведут, давно не проверял. Так что попавший под раздачу Github тут скорее приятное исключение.
Только при этом она называется "Обходим обязательную привязку телефонного номера к своей учетной записи на GitHub".
Эти TOTP-аутентификаторы сейчас завезли примерно в каждый парольный менеджер, не считая кучи отдельных оперносорсных приложений, ни одно из которых не привязано к телефону. Причем TOTP в браузере (и вообще на основном устройстве) — так себе идея, слегка противоречащая двухфакторности.
Поэтому заголовок про обход обязательной привязки к телефонному номеру просто некорректен, речь просто об использовании еще одной штатной возможности.
Gods, который на самом деле Gogs (что видно даже по ссылке), не готовый сервис, а сервер для самостоятельного развертывания.
Вторая часть балета начнется, когда пользователь в этой консоли захочет ввести кириллицу.
Маляры, моляры, какая в сущности разница, кого/что распознавать. С малярами получилось даже концептуальнее.
«At the end of the stack» в данном контексте, конечно, ни разу не про конец стека, а просто «В конце концов».
Виртуальные функции сплошь и рядом вызывают в своем же классе, достаточно заглянуть в любой фреймворк. Такой вызов — это расчет на то, что в будущем ее кто-нибудь при необходимости сможет перегрузить.
Говоря о том, что их обычный вызов не отличается от других функций и разница проявляется только при вызове через указатели, Шилдт как-то забыл упомянуть, что обычный вызов из члена класса — это и есть вызов через указатель this.
Кстати, строго говоря, в вопросе виртуальная функция вызывается не из конструктора/деструктора предка, а из конструктора/деструктора потомка, что в рамках этого кода к проблемам с неожиданным поведением не приведет, хотя и закладывает мину на будущее.
Это всё прекрасно, но механизм виртуальных функций не работает в конструкторах/деструкторах (собственно, откуда и возник исходный вопрос).
https://isocpp.org/wiki/faq/strange-inheritance#calling-virtuals-from-ctors
https://isocpp.org/wiki/faq/strange-inheritance#calling-virtuals-from-dtors
Т.е. вызвать их не проблема с точки зрения синтаксиса, только работать они будут как простые функции, что может оказаться не совсем тем, что ожидал програмист.
Не удивлюсь, если Шилдт забыл об этом упомянуть, такие зевки для него очень характерны.
Забавно, что сам Томлинсон забыл не только содержимое письма, но и точную дату — в 2010 он вспоминал, что вначале вообще где-то ляпнул про 1972, потом «провел исследования и выяснил, что дело должно было быть в 1971», так что долгое время писали просто про конец 1971.
Т.е. для него это просто была обычная рутина, идея застолбить место в истории совершенно не волновала.
Тоже плевался от маковского подхода к переключению между приложениями. Бесплатная AltTab проблему убрала.