Авторизация пользователя. Как хранить логин и пароль - C#

Узнай цену своей работы

Формулировка задачи:

Всем добрый день! Наконец-то добралась до авторизации пользователя. Отсюда вопрос: Где и как хранить логины и пароли? хочется в файле на диске. но его наверно надо как-то закодировать... как? сразу скажу, что прогу надо защитить не от супер хакера, а от простого рядого юзера, чтобы он не мог войти в режиме администратора и не мог узнать логин/пароль админа просто открыв файлик на диске. то есть как бы файлик защитить, но попроще?! заранее всем спасибо за код или ссылочки (или хотя бы правильную формулировку запроса в гугл =) )!!!

Решение задачи: «Авторизация пользователя. Как хранить логин и пароль»

textual
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Text;
  4. using System.IO;
  5. using System.Security.Cryptography;
  6.  
  7. namespace MyNameSpace
  8. {
  9.     class Encryptor
  10.     {
  11.         string encryPass;
  12.         string encryString;
  13.  
  14.         public Encryptor()
  15.         {
  16.            encryPass = CreSap();
  17.         }
  18.         public Encryptor(string encrStr)
  19.         {
  20.            encryPass= CreSap();
  21.             encryString = Encrypt(encrStr);
  22.         }
  23.         public string EncryptStr
  24.         {
  25.             get { return encryString; }
  26.             set { encryString = Encrypt(value); }
  27.              
  28.         }
  29.    
  30.         double SimAlgEncry(int n)
  31.         {
  32.             if (n == 0)
  33.             {
  34.                 return 0;
  35.             }
  36.             else
  37.             {
  38.                 if (n == 1)
  39.                 {
  40.                     return 1;
  41.                 }
  42.                 else
  43.                 {
  44.                     return SimAlgEncry(n - 1) + SimAlgEncry(n - 2);
  45.                 }
  46.             }
  47.         }
  48.         string CreSap()
  49.         {
  50.             return Math.Pow(SimAlgEncry(10),3).ToString();
  51.         }
  52.         /// <summary>
  53.         /// Encrypt string
  54.         /// </summary>
  55.         /// <param name="source_str"></param>
  56.         /// <returns></returns>
  57.         string Encrypt(string source_str)
  58.         {
  59.             // Получаем из строки набор байт, которые будем шифровать
  60.             byte[] source_data = Encoding.UTF8.GetBytes(source_str);
  61.             // Алгоритм
  62.             SymmetricAlgorithm sa_in = Rijndael.Create();
  63.             // Объект для преобразования данных
  64.             ICryptoTransform ct_in = sa_in.CreateEncryptor(
  65.                 (new PasswordDeriveBytes(encryPass, null)).GetBytes(16), new byte[16]);
  66.             // Поток
  67.             MemoryStream ms_in = new MemoryStream();
  68.             // Шифровальщик потока
  69.             CryptoStream cs_in = new CryptoStream(ms_in, ct_in, CryptoStreamMode.Write);
  70.             // Записываем шифрованные данные в поток
  71.             cs_in.Write(source_data, 0, source_data.Length);
  72.             cs_in.FlushFinalBlock();
  73.             // Создаем строку
  74.             return  Convert.ToBase64String(ms_in.ToArray());
  75.             // Выводим зашифрованную строку
  76.  
  77.         }
  78.         /// <summary>
  79.         /// Decrypt string
  80.         /// </summary>
  81.         /// <param name="crypt_str"></param>
  82.         /// <returns></returns>
  83.         string Decrypt(string crypt_str)
  84.         {
  85.             // Получаем массив байт
  86.             byte[] crypt_data = Convert.FromBase64String(crypt_str);
  87.  
  88.             // Алгоритм
  89.             SymmetricAlgorithm sa_out = Rijndael.Create();
  90.             // Объект для преобразования данных
  91.             ICryptoTransform ct_out = sa_out.CreateDecryptor(
  92.                 (new PasswordDeriveBytes(encryPass, null)).GetBytes(16),
  93.                 new byte[16]);
  94.             // Поток
  95.             MemoryStream ms_out = new MemoryStream(crypt_data);
  96.             // Расшифровываем поток
  97.             CryptoStream cs_out = new CryptoStream(ms_out, ct_out, CryptoStreamMode.Read);
  98.             // Создаем строку
  99.             StreamReader sr_out = new StreamReader(cs_out);
  100.             string source_out = sr_out.ReadToEnd();
  101.             return source_out;
  102.         }
  103.     }
  104. }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.933 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы