Зашифровать перезаписываемый файл в С#
есть бот помощник для биржи, помогите с защитой.Он создаёт текстовый файл с апи и секретом в каталоге, но как его не засовывай все равно легко найти, как можно его зашифровать или вообще что бы не писал ,мне достаточно если я в коде где то его пропишу и все раз и навсегда.
/// /// загрузить настройки сервера из файла /// public void Load() < if (!File.Exists(@"socket\" + @"api.txt")) < return; >try < using (StreamReader reader = new StreamReader(@"socket\" + @"api.txt")) < UserId = reader.ReadLine(); UserKey = reader.ReadLine(); _countDaysTickNeadToSave = Convert.ToInt32(reader.ReadLine()); _neadToSaveTicks = Convert.ToBoolean(reader.ReadLine()); IsDemo = Convert.ToBoolean(reader.ReadLine()); reader.Close(); >> catch (Exception) < // ignored >> /// /// сохранить настройки сервера в файл /// public void Save() < try < using (StreamWriter writer = new StreamWriter(@"socket\" + @"api.txt", false)) < writer.WriteLine(UserId); writer.WriteLine(UserKey); writer.WriteLine(CountDaysTickNeadToSave); writer.WriteLine(NeadToSaveTicks); writer.WriteLine(IsDemo); writer.Close(); >> catch (Exception) < // ignored >>
Помощник в открытом доступе нашел, вот и хочу переделать под себя, а страшно оставлять на сервере например. Я просто только не давно изучаю , помогите, пожалуйста.
Нашел пример но не могу сообразить как хотя бы параметр UserKey шифровать и расшифровывать.
static void Main(string[] args) < ushort secretKey = 0x0088; // Секретный ключ (длина - 16 bit). string str = "Hello World"; //это строка которую мы зашифруем str = EncodeDecrypt(str, secretKey); //производим шифрование Console.WriteLine(str); //выводим в консоль зашифрованную строку str = EncodeDecrypt(str, secretKey); //производим рассшифровку Console.WriteLine(str); //выводим в консоль расшифрованную строку Console.ReadKey(); >public static string EncodeDecrypt(string str, ushort secretKey) < var ch = str.ToArray(); //преобразуем строку в символы string newStr = ""; //переменная которая будет содержать зашифрованную строку foreach (var c in ch) //выбираем каждый элемент из массива символов нашей строки newStr += TopSecret(c, secretKey); //производим шифрование каждого отдельного элемента и сохраняем его в строку return newStr; >public static char TopSecret(char character, ushort secretKey) < character = (char)(character ^ secretKey); //Производим XOR операцию return character; >
Или вот тоже пример но как его применить не пойму:
// Шифруем текст, и записываем его в файл FileStream stream = new FileStream("C:\\mytext.txt", FileMode.OpenOrCreate, FileAccess.Write); DESCryptoServiceProvider cryptic = new DESCryptoServiceProvider(); cryptic.Key = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH"); cryptic.IV = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH"); CryptoStream crStream = new CryptoStream(stream, cryptic.CreateEncryptor(),CryptoStreamMode.Write); byte[] data = ASCIIEncoding.ASCII.GetBytes("Hello World!"); crStream.Write(data,0,data.Length); crStream.Close(); stream.Close(); //Дешифруем текст и выводим результат дешифрации в консоль FileStream stream = new FileStream("C:\\mytext.txt", FileMode.Open,FileAccess.Read); DESCryptoServiceProvider cryptic = new DESCryptoServiceProvider(); cryptic.Key = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH"); cryptic.IV = ASCIIEncoding.ASCII.GetBytes("ABCDEFGH"); CryptoStream crStream = new CryptoStream(stream, cryptic.CreateDecryptor(),CryptoStreamMode.Read); StreamReader reader = new StreamReader(crStream); string data = reader.ReadToEnd(); Console.WriteLine(data); Console.ReadKey(); reader.Close(); stream.Close();
Как находить кандидатов на Stack Overflow
Мы поговорили про сорсинг на Stack Overflow с Русланом Сарваровым из компании Evrone.
Руслан рассказал, чем Q&A-сервис для разработчиков полезен рекрутерам, как вести внутренний и внешний поиск кандидатов, а также объяснил, как составлять SQL-запросы к базе данных пользователей, если не знаешь SQL.

Руслан Сарваров, Recruitment Lead в Evrone, автор канала SR4HR
Что такое Stack Overflow и кого там искать
Stack Overflow — это Q&A-сервис для айтишников, где одни люди задают вопросы, а другие отвечают. По сути, это огромная база знаний, с помощью которой IT-специалисты решают свои боевые задачи.
Аудитория сайта насчитывает свыше 100 миллионов человек со всего мира. Среди пользователей не только разработчики, а все, кто пишет код, в том числе ML-инженеры и автотестировщики.
Особенности сервиса
Легче оценить экспертность кандидата
Если зайти в профиль пользователя на GitHub, то можно посмотреть написанный им код и понять, какие языки программирования он знает. Но зачастую рекрутеры недостаточно глубоко разбираются в коде — им сложно определить, чем конкретно занимается кандидат и в чем он эксперт.
Эту задачу легче решить на Stack Overflow: здесь можно почитать ветки по вопросам, в обсуждениях которых участвует пользователь. Это позволяет более детально проанализировать его опыт, понять интересы и проблемы.
Сложно искать информацию о кандидате
В целом это сервис, где айтишники могут обмениваться знаниями и опытом, не подвергаясь атакам рекрутеров. Именно поэтому внутренний поиск Stack Overflow ориентирован на сбор информации по конкретным темам, а не на сканирование профилей пользователей. К счастью, эти ограничения можно обойти — еще расскажу как.
Еще недавно на Stack Overflow были инструменты для работодателей:
- Jobs — можно было публиковать вакансии, разбирать отклики и писать кандидатам;
- Salary Calculator — калькулятор зарплат и аналитика вилок по каждому стеку технологий;
- Developer Story — резюме в профиле пользователя.
Ни один из этих продуктов больше не работает: создатели Stack Overflow решили, что не стоит превращать сервис в очередной джоб-сайт.
Stack Overflow — не основной, а дополнительный канал поиска
У вас не получится отправить пользователю личное сообщение внутри сервиса: такой функции нет. Скорее всего, вы не сможете понять, открыт ли кандидат к предложениям — если только он сам не напишет об этом в профиле.
Типичный сценарий использования сервиса: нашли кандидата на LinkedIn или GitHub, а потом перешли в его аккаунт на Stack Overflow, чтобы оценить опыт и понять, за что стоит зацепиться на интервью. Или наоборот: встретили подходящего специалиста на Stack Overflow, а потом нашли его аккаунты в других соцсетях и платформах.
X-ray-поиск по Developer Story
Раньше внутри профиля пользователя был специальный раздел Developer Story. Он выглядел как полноценное резюме с контактными данными и информацией о предыдущих местах работы и образовании:
Сейчас все эти страницы недоступны, но благодаря кэшу гугла их можно просматривать. Например, найдем резюме golang-разработчиков, которые в своих навыках указали Kubernetes. Запрос будет таким:
site:stackoverflow.com/cv (“golang * “|“go * “) “kubernetes“
Раньше Developer Story (резюме) хранились по адресу stackoverflow.com/cv. А с помощью символа * мы сообщаем гуглу о том, что после ключевого слова может идти какой угодно текст.
В результате мы получаем поисковую выдачу. Но при попытке перейти по любой ссылке система сообщает, что Page not found. К счастью, все удаленные страницы еще хранятся в памяти гугла: чтобы открыть страницу, нажмите на значок с треугольником и кликните по ссылке «Сохраненная копия»:
В основном таким Х-ray-запросом я находил резюме разработчиков уровня «сениор» и выше — с опытом от 3 до 5 лет в определенном стеке. Реже встречаются джуны и мидлы.
Чтобы сохранить поисковую выдачу, советую использовать расширение Instant Data Scrapper. Оно сформирует таблицу, где будут ссылки на кэшированные страницы:
X-ray-поиск по профилям пользователей
Профили всех пользователей хранятся по адресу stackoverflow.com/users. Причем помимо глобального Stack Overflow есть русскоязычный сегмент — он находится на поддомене ru.stackoverflow.com.
Искать только по русскоязычным пользователям можно двумя способами:
Поиск по поддомену ru позволяет сузить выдачу. Например, если написать site:ru.stackoverflow.com/users ios swift, то гугл покажет около 200 профилей, а по запросу site:stackoverflow.com/users ios swift Russia — более 500.
Далеко не во всех профилях есть контакты. Но можно поискать среди пользователей, которые указали свой LinkedIn: cсылка будет в блоке About или в информации под фото. Составляем запрос:
site:stackoverflow.com/users ios|swift “linkedin.com/in/ *“ Russia
Stack Overflow — это не джоб-сайт, поэтому большинство пользователей не ищут работу. Но те, кто открыт к предложениям, иногда используют фразу looking for — за это можно зацепиться в запросе:
site:stackoverflow.com/users “Data Science“ “looking for“
Поиск через Stack Exchange Data Explorer
Stack Exchange Data Explorer — это сервис для поиска по базе пользователей Stack Overflow с помощью SQL-запросов. Если вы не знаете язык SQL, не беда, есть инструменты, которые помогут сформировать нужный запрос.
Генератор SQL-запросов
Этот сервис создает запрос под ваши требования. Можно задать местоположение и скиллы, выбрать обладателей конкретных бейджей от Stack Overflow:
В правой колонке автоматически формируется SQL-запрос. При нажатии на голубую кнопку текст копируется в буфер, а вас перекидывает на Stack Exchange Data Explorer, где можно отправить запрос.
Готовые скрипты
Скорее всего, нужный вам запрос уже кем-то написан — осталось только найти и подправить его под свои задачи.
Например, я нашел интересный скрипт, который необходимо настроить: указать локацию поиска в User.Location и скиллы (язык программирования или фреймворки) в Tags.TagName. Скрипт формирует таблицу, где по каждому пользователю есть информация:
- Ссылка на профиль в Stack Overflow.
- Репутация — формируется за счет ответов на вопросы и является частью системы геймификации Stack Overflow.
- Ссылка на веб-сайт, который указан в профиле.
- Предполагаемые ссылки на GitHub, LinkedIn и Telegram — формируются путем подстановки никнейма пользователя на Stack Overflow. Это сработает, только если человек использует один и тот же никнейм в разных соцсетях.
Есть готовый запрос для поиска по стеку и локации — надо только заполнить поля TagName и LocationName, а потом нажать кнопку Run Query. Например, если вбить Rust и Moscow, то получим выдачу из 50 профилей.
Внутренний поиск
Поиск по темам
Внутренний поиск Stack Overflow ориентирован не на людей и их навыки, а на темы и сообщения. Допустим, вам требуется информация по какой-то проблеме — делаете запрос и смотрите решения.
А вот получить выборку из всех java-разработчиков из Москвы не получится: этих фильтров просто нет во внутреннем поиске. С такими запросами лучше сразу идти на GitHub, LinkedIn или классические джоб-борды.
Но зато вы можете найти человека, который разбирается в узкой теме. Сценарий поиска такой:
- Рекрутер знает о проблеме, которую решает команда разработки.
- Он вбивает запрос по этой проблеме в поисковую строку на Stack Overflow.
- Затем читает обсуждения и пытается связаться с людьми, которые его заинтересовали.
Однажды таким способом я искал Reverse Engineer — это редкий специалист, который занимается информационной безопасностью и исследованиями. Я нашел кандидата и довел его до оффера, который тот, увы, так и не принял.
Для понимания работы операторов поиска по темам нужно изучить официальную документацию Stack Overflow.
Поиск синонимов
Stack Overflow можно использовать не только для поиска кандидатов — это еще и полезная база знаний для рекрутера, который начал работать с новой вакансией.
Допустим, вы впервые ищете ML-инженера и не знаете, какие ключевые слова использовать. Можно отправиться в гугл: разбираться в статьях, где обычно много воды, вычленять ключевики, пытаться докопаться до сути. Но есть более простой и быстрый способ — перейти в раздел «Метки» на Stack Overflow, найти нужную технологию, посмотреть описание и связанные с ней ключевые слова:
Для чего подходит Stack Overflow
Если нужен редкий специалист
Если ищете специалиста с редкой экспертизой или сочетанием скиллов, то Stack Overflow — хороший выбор. За классическими джавистами, питонистами, php-разработчиками и гошниками можно отправляться в другие источники, более удобные для рекрутинга.
Если нужна «звезда»
Здесь могут обитать популярные в комьюнити разработчики — они отвечают на вопросы, участвуют в обсуждениях, зарабатывают себе бейджи и репутацию.
Если вы охотитесь за конкретным кандидатом, то можете найти его на Stack Overflow. Почитайте, что он пишет в обсуждениях, чем интересуется — это помогает понять, как построить диалог со звездным собеседником.
Если надо изучить стек технологий
Чтобы построить конструктивный диалог с кандидатом, рекрутер должен говорить с ним на одном языке. А для этого нужно хотя бы минимально, но разбираться в предметной области: знать свой стек технологий, основные фреймворки и обсуждаемые темы.
Stack Overflow можно использовать для того, чтобы глубже погрузиться в предметную область, понять, чем живет сообщество, какие проблемы решает и что обсуждает.
Еще про сорсинг в блоге Хантфлоу:
- Рекрутинг в LinkedIn: часть 1 и часть 2
- Сорсинг на GitHub
- Инструменты сорсинга: обзор для начинающих
- 25 ресурсов для обучения сорсингу
- 11 нестандартных источников для сорсинга
- Руководство по сорсингу от Нарека Асликяна
- Как развиваться сорсеру
Главное про сорсинг на Stack Overflow
- На Stack Overflow можно найти любых специалистов, которые пишут код.
- При этом сервис не очень удобен для рекрутеров: нет возможности писать личные сообщения, контакты часто отсутствуют, сложно понять, ищет ли кандидат работу.
- Stack Overflow удалил страницы с резюме (Developer Story) из профилей пользователей, но они остались в памяти гугла и все еще доступны для X-ray-поиска.
- Профили хранятся по адресу stackoverflow.com/users. Чтобы в выборке были только русскоязычные пользователи, ищите по русскоязычному сегменту (ru.stackoverflow.com/users) или используйте ключевое слово Russia.
- Применяйте Stack Exchange Data Explorer, чтобы искать по всей базе пользователей с помощью SQL-запросов. Если не знаете SQL, то воспользуйтесь готовыми скриптами или генератором запросов.
- Внутренний поиск Stack Overflow довольно бесполезен, потому что ориентирован на темы и вопросы, а не на людей и их скиллы. Однако его можно использовать, чтобы найти экспертов для решения какой-то специфической проблемы.
- Поиск по меткам — спасение для рекрутера, который хочет подобрать синонимы, но не готов копаться в гугле, вычленяя ключевые слова и разбираясь с новым для себя стеком.
- Если вам нужна «звезда», ее можно встретить среди пользователей с высокой репутацией.
1 апреля
Вы сейчас телевизор слышали [РОССИЯ 1] 2020.03.31 17-00 ?
1 апреля half life 2 рептилоиды
Удаленные первоапрельские темы
«List as Js» или попросту listass
1 апреля python тупняк
1 апреля google google maps
Что для вас «день дурака»? Празднуете?
1 апреля ненужно нужно
Ваша операционная система не поддерживается.
1 апреля нет пути шиндовс
1 апреля lor вещества
А куда дэлся новост?
1 апреля rss вброс
В Госдуме предложили бороться с псевдонаучными педерачами
1 апреля телевидение
Разработка DBus и Glib2 прекращена в пользу libsystemd-bus и Glib3
1 апреля gnome systemd
Ну, и где шутки на главной?
1 апреля lor маразм
Верните новость про confd
1 апреля почта россии правила
1 апреля пятница
а вот интересно
1 апреля новости
1 апреля 4.2 удаленные
Срочные новости! Arch Linux признали наиболее дружелюбным дистрибутивом.
1 апреля arch linus torvalds
Секретные шляпы для всех, даром, и пусть никто не уйдёт обиженный!

Три условия одновременно: нужно на вопрос с 0 комментариев дать ответ с 0 комментариев, и ответ должен набрать рейтинг +7. Удаленные комментарии всё равно считаются.

Отслеживать
ответ дан 18 дек 2015 в 6:21
Nick Volynkin Мод Nick Volynkin
34k 8 8 золотых знаков 78 78 серебряных знаков 216 216 бронзовых знаков
Cleanup Crew
Для этой шляпы нужно удалить 30 комментариев

Отслеживать
собственных же?
18 дек 2015 в 12:29
@NickVolynkin, а это под вопросом. Возможно, не собственных тоже, но это уже модератор может проверить.
18 дек 2015 в 12:33
удалил, что-то не дают шапку.
18 дек 2015 в 12:55
@NickVolynkin, на складе закончилось, наверное.) Возможно, есть ещё какое-то неизвестное условие. Я начинал удалять с конца списка, отсортированного по возрасту комментариев (от младшего к старшему). Но мои самые старые комментарии имеют возраст не более 3-4 месяцев.
18 дек 2015 в 12:59
Тут пишут, что нужно около 50 удалить. Winter Bash 2015 Secret Hats
18 дек 2015 в 13:03
@NickVolynkin, не, я 50 не удалял. Может и сбился где-то со счёта, но на 20 промахнуться не мог. Скажем, не 30, а 35. У нас тут один в чате писал, что удалил 70 и ничего не получил.
18 дек 2015 в 13:04
Насчёт этой шляпы появилось подозрение, что дело не в 30 удалённых, а количестве голосов в удалённых комментариях. Среди тех, что я удалил, было много комментариев с голосами больше одного. Бывало и 3-4 тоже.
19 дек 2015 в 0:55
@NickVolynkin, удалил 30 комментов — получил шапку, список удаленных со статистикой можно посмотреть здесь
19 дек 2015 в 14:31
@Alex, забейте на это.
22 дек 2015 в 7:15
Hairboat’s Revenge
У этой лодочки есть история, связанная с какими-то интригами и взаимными подколами на Meta SE. Но я вам ее не расскажу, потому что сам не понял. Идея вот в чем:
Шляпа дается за любой комментарий под постом Jon Ericson (за всё, что создает нотификацию в его входящих сообщениях).

Отслеживать
ответ дан 18 дек 2015 в 6:25
Nick Volynkin Мод Nick Volynkin
34k 8 8 золотых знаков 78 78 серебряных знаков 216 216 бронзовых знаков
оказыватеся под мета не дает. Сказано что meta.SFF.SE, meta.SE, не входит в это. meta.stackexchange.com/a/270851/311807
18 дек 2015 в 15:23
@Saidolim: да, верно.
18 дек 2015 в 17:00
Odinson
Сын Одина — Тор, атрибут Тора — Молот. Так что понятно, что нужно жахнуть.
Вы должны ударить «волшебным молотом» — то есть, «золотым» голосом за дубликат. Если у вас нету, вы должны хотя бы внести свой вклад в удар: проголосовать за закрытие перед тем, как золотой молот закроет вопрос окончательно.
(«Золотой голос за дубликат» по какой-нибудь метке вы получаете, если у вас есть золотой бедж по этой метке.)

Отслеживать
ответ дан 18 дек 2015 в 10:34
207k 1 1 золотой знак 33 33 серебряных знака 73 73 бронзовых знака
Sun Wukong
Пост на Мете, на котором не менее чем 5 голосов за и 5 голосов против.

Отслеживать
ответ дан 20 дек 2015 в 14:31
Nick Volynkin Мод Nick Volynkin
34k 8 8 золотых знаков 78 78 серебряных знаков 216 216 бронзовых знаков
Поощрение читерства? С трудом себе представляю настолько неоднозначное сообщение, за которое будут активно голосовать