Примерно тридцать лет назад люди видели онлайн-страницы так.
Старые протоколы, которыми можно пользоваться и сегодня
Примерно тридцать лет назад люди видели онлайн-страницы так.
Приветствую читателей! В мои руки попал интересный экземпляр – сервер Netra X1 компании Sun Microsystems. Привлёк данный аппарат архитектурой Sparc, которой я раньше мало где встречал. Аппарат конечно старый, но работает безупречно. Тут родилась идея установки BBS и операционной системы Debian. Так сказать «Готовый музейный экспонат».
Введение:
- обычный ChatGPT 3.5 работает тут https://chat.openai.com, но для генерации картинок нужен Dall-E 3 отсюда https://openai.com/dall-e-3 и желательно ChatGPT 4 (правильно осознать ваш креативный запрос), а они доступны только по премиум подписке (for Plus and Enterprise users) за 20 долларов в месяц
- чтобы обойти это ограничение, воспользуемся бескорыстием Microsoft, вложившей в OpenAI (разработчика ChatGPT) больше 13 млрд долларов для развития своего поисковика Bing
- Bing предоставляет доступ одновременно и к ChatGPT 4 и к Dall-E 3, но через браузер Microsoft Edge и при наличии учётной записи Microsoft
Подготовка:
- создайте учётную запись в Microsoft https://signup.live.com/signup?lic=1
(если учётка уже существует, от Skype, например, пропустите этот шаг и найдите логин и пароль)
- скачайте браузер Edge https://www.microsoft.com/ru-ru/edge/download?form=MA13FW
(если браузер уже скачан, пропустите шаг)
Процесс:
- открываем браузер Edge и логинемся в нём с учётной записью Microsoft
- скачиваем VPN-плагин для браузера Edge, например, по ссылке далее и активируем его https://microsoftedge.microsoft.com/addons/detail/browsec-vpn-%D0%B1%D0%B5%D1%81%D0%BF%D0%BB%D0%B0%D1%82%D0%BD%D1%8B%D0%B9-/fjnehcbecaggobjholekjijaaekbnlgj
- открываем в браузере Edge ссылку https://www.bing.com/search?q=Bing+AI&showconv=1 и сохраняем ее в избранном
- если увидите три плашки "Творческий", "Сбалансированный" и "Точный" в разделе "Выбор стиля беседы" и строку запроса как в мессенджере в нижней части экрана, значит всё получилось (если видите "обычный" поиск Bing с разными ссылками типа "Новости о Bing AI", "Что такое Bing" и строку запроса в верхней части экрана, значит что-то не получилось)
Уверен, что вы хотя бы раз создавали пару ключей RSA, напримет, потому, что вам нужно было подключиться к GitHub, и вы хотели избежать необходимости вводить свой пароль каждый раз. Вы добросовестно следовали инструкциям по созданию SSH-ключей, и через пару минут всё было готово.
Но знаете ли вы, что именно вы делали? Углублялись ли вы в детали процесса?
Знаете ли вы, что содержится в файле ~/.ssh/id_rsa
? Почему ssh создает два файла с разным форматом? Замечали ли вы, что один файл начинается со слов ssh-rsa
, а другой — с -----BEGIN RSA PRIVATE KEY-----
? Вы замечали, что иногда в заголовке второго файла отсутствует часть RSA
и просто написано BEGIN PRIVATE KEY
?
Я считаю, что минимальный уровень знаний относительно различных форматов ключей RSA обязателен для каждого разработчика в наши дни, не говоря уже о важности глубокого понимания их, если вы хотите построить карьеру в мире управления инфраструктурой.
В современном мире IoT, когда связь в отдаленных районах становится все более актуальной, технология LoRa (Long Range) предоставляет нам возможность создать дальнобойный, надежный, энергоэффективный и зашифрованный канал связи без необходимости иметь какую-либо сетевую инфраструктуру.
В этой статье мы рассмотрим, как создать простой LoRa мессенджер с использованием своего протокола обмена и готовых модулей, работающих в режиме P2P (peer-to-peer) – не идеального, но интересного решения для обмена текстовыми сообщениями в условиях ограниченной инфраструктуры.
Для упрощения и автоматизации процесса обмена сообщениями мы воспользуемся Node-RED. Этот инструмент, помимо реализации основной логики обмена сообщениями, также предоставит графический интерфейс для мессенджера, что сделает процесс более доступным и интуитивно понятным.
Выглядеть будет просто, потому что воспользуемся всем готовым :)
Если вбить в яндекс 'aes 128 ecb mode', найдутся хорошие статьи ребят на "хабре": раз и два — толковые и одновременно слишком подробные.
Рассказ об алгоритме в картинках находится здесь (который также можно найти по ссылкам в одной из статей ребят выше).
Кратко об алгоритме: 1) создаем объект с 16-байтным state и массивом 16-байтных ключей; 2) пишем примитивы для объекта (они же трансформации); 3) запускаем n раз (где n — кол-во раундов). Все трансформации делаем симметричными — для зашифровки и расшифровки одновременно. Расшифровка в терминах алгоритма — это зашифровка наоборот.
Структура:
using byte_t = unsigned char;
struct aes128 {
aes128(const std::string& text, const std::string& cipher, bool decrypt = false)
: state({begin(text), end(text)}), keys({{begin(cipher), end(cipher)}}), decrypt(decrypt) {}
aes128() = default;
aes128(const aes128&) = default;
std::vector<byte_t> state;
std::vector<std::vector<byte_t>> keys;
bool decrypt;
}
Долгое время я считал, что криптографические алгоритмы шифрования и хеширования, вроде AES и MD5, устроены очень сложно и написать их совсем не просто, даже имея под рукой полную документацию. Запутанные реализации этих алгоритмов на разных языках программирования только укрепляли это мнение. Но недавно у меня появилось много свободного времени и я решил разобраться в этих алгоритмах и написать их. Оказалось, что они очень просто устроены и для их реализации нужно совсем немного времени.
В этой статье я напишу как устроен алгоритм шифрования AES (которого иногда называют Rijndael) и напишу его на JavaScript. Почему на JavaScript? Чтобы запустить программу на этом языке, нужен только браузер в котором вы читаете эту статью. Чтобы запустить программу, скажем, на C, нужен компилятор и найдётся совсем мало желающих, готовых потратить время на компиляцию кода из какой то статьи. В конце есть ссылка по которой можно скачать архив с html страницей и несколькими js файлами — это пример реализации AES на JavaScript.
Сейчас уже, наверное, больше половины серверов перебрались с http на https протокол. Зачем? Ну, это мол круто, секъюрно.
В чем же заключается эта секъюрность? На эту тему уже написана куча статей, в том числе и на Хабре. Но я бы хотел добавить еще одну.
Я, вообще, по специальности Android разработчик, и не особо шарю в криптографии и протоколах защиты информации. Поэтому когда мне пришлось столкнуться с этим непосредственно, я был немного в шоке от размера пропасти в моих теоретических знаниях.
Я начал рыться в разных источниках, и оказалось, что в этой теме не так просто разобраться, и тут недостаточно просто прочитать пару статей на Хабре или Вики, при чем я нигде не встретил абсолютно исчерпывающего и понятного источника, чтобы сослаться и сказать — "Вот это Библия". Поэтому у меня это "немного разобраться" заняло кучу времени. Так вот, разобравшись, я решил поделиться этим, и написать статью для таких же новичков, как и я, или просто для людей, которым интересно зачем в строке URL иногда стоит https, а не http.