Не так давно начал осваивать азы C#. До этого я создавал утилиты и небольшие программы на Visual Basic включая Visual Basic for applications. За плечами техникум и институт, но там, как ни странно, меня не учили программировать вообще, поэтому Visual Basic я изучал самостоятельно, а теперь перешёл на C#.
На текущий момент переписываю программу, которая собирает техническую информацию на стороне клиента нашей компании и отправляет её нам в архиве, защищённом паролем. Это упрощает жизнь нашим специалистам технической поддержки, тестировщикам и разработчикам, так как разбираясь с проблемой клиента мы имеем у себя все технические данные. Клиент программу запускает сам, сам жмёт на кнопку отправки данных в наш адрес, поэтому всё прозрачно и никаких секретов от клиента.
Выше я сказал, что архив защищён паролем, который программа генерирует автоматически перед архивацией. В интернете много примеров генераторов паролей, однако я решил по максимуму упростить код, чтобы не было нагромождения кода. И здесь привожу реализацию метода генерации пароля на C#.
private void GeneratePass() { string iPass = ""; string[] arr = { "1","2","3","4","5","6","7","8","9","B","C","D","F","G","H","J","K","L","M","N","P","Q","R","S","T","V","W","X","Z","b","c","d","f","g","h","j","k","m","n","p","q","r","s","t","v","w","x","z","A","E","U","Y","a","e","i","o","u","y" }; Random rnd = new Random(); for (int i = 0; i < 30; i = i + 1) { iPass = iPass + arr[rnd.Next(0, 57)]; } }
arr – массив, в котором я указал все символы, которые будут участвовать в генерации паролей. Из массива убраны — 0(ноль), O, l(L), I (И большое), чтобы при наборе пароля человек не путал символы (Облегчаем жизнь нашим специалистам). Вы также можете в массив добавить спецсимволы и т.д.
i < 30 – отвечает за длину пароля (30 символов), если хотите изменить длину пароля, то измените данное число.
(0, 57) – указываем длину массива, из которого программа будет выбирать символы для генерации пароля. К примеру, если укажем (0, 10), то программа будет перебирать из массива символы с 0 по 10 («1», «2», «3», «4», «5», «6», «7», «8», «9», «B», «C») и только из них формировать пароли. У нас в массиве 58 символов, поэтому мы и указали (0, 57) – отсчёт начинается с нуля.
iPass — в данной переменной будет содержаться конечный результат.
Для экономии памяти в вашем методе лучше использовать массивы символов, т.к. они сами по себе меньше памяти будут занимать. Так и при «сборке» пароля у нас не будет выделятся много лишней памяти. А в вашем примере, у нас 30 раз будет генерироваться новая строка, что является не особо критичным в данной ситуации, но в подобных может привести к значительным проблемам
Виктор, а что делает ваша программа?
Собирает технические данные программы, которую мы поставляем клиентам: логи программы, версии библиотек, настройки программы и т.д. В итоге техническим специалистам легче и быстрее удаётся выявлять проблемы возикающие с нашим ПО.
Витек, привет! Как считаешь, насколько реально самостоятельно выучить Java для смены основной деятельности ( работы) ?
Привет. Реально всё, если есть желание.
Если знаешь основы и хотя бы на одном языке что-то писал, то обучение пройдёт быстро. Если никогда не сталкивался с языками программирования, то обучение будет проходить медленее.
Оптимальный вариант изучать язык программирования и при этом иметь рядом знакомого или друга, который знает этот язык и в любой момент может пояснить непонятные моменты.