Как защитить данные

Я делаю программу и в ней надо вводить данные

при сохранении он сохраняет данные в .ini файл

Можно ли защитить данные в ,ini файле???

т.е зашел в .ini файл а там набор букв и цифр!

Типо такого

email=TVRNd05UTTRNell6TVRNMU1qYzNNemTmpNPQ==
pass=TldJek5tVmhZMll3T0RRd05EQm1PVE5tTkdVeVkyVmlPRE0yTSaE9HST0=

Читайте также:

3 thoughts on “Как защитить данные

  1. anonim

    как насчет зашифровать?
     
    при записи в файл делаешь
    encrypt(“vasya.pupkin@mail.ru”,secret_key) -> “TVRNd05UTTRNell6TVRNMU1qYzNNemTmpNPQ”
    при считывании из файла делаешь
    decrypt(“TVRNd05UTTRNell6TVRNMU1qYzNNemTmpNPQ”,secret_key) -> “vasya.pupkin@mail.ru”
     
    secret_key – ключ, который хранится в твоей программе. Его конечно можно вытащить, но обычные пользователи вряд ли способны на такое. Вообще любую защиту можно сломать, было бы желание.
     

    Reply
  2. anonim

    Класс SimpleAES, реализующий шифрование с помощью алгоритма AES.
    m_salt – обязательно замени на любую случайную последовательность символов
     
    using System.Security.Cryptography;
    using System.IO;

    public class SimpleAES
    {
    private static byte[] m_salt = Encoding.ASCII.GetBytes(“90kd6j8h7j7fe3u”);

    public static string EncryptString(string plainText, string sharedSecret)
    {
    string outStr = null;
    RijndaelManaged aesAlg = null;

    try
    {
    // создаем ключ для шифрования, используя секретный пароль и “соль”
    Rfc2898DeriveBytes key = new Rfc2898DeriveBytes(sharedSecret, m_salt);

    // создаем объект RijndaelManaged
    aesAlg = new RijndaelManaged();

    // проставляем ключ и вектор инициализации
    aesAlg.Key = key.GetBytes(aesAlg.KeySize / 8);
    aesAlg.IV = key.GetBytes(aesAlg.BlockSize / 8);

    // создаем encryptor
    ICryptoTransform encryptor = aesAlg.CreateEncryptor(aesAlg.Key, aesAlg.IV);

    // создаем потоки для шифрования данных
    using (MemoryStream memoryStream = new MemoryStream())
    {
    using (CryptoStream cryptoStream =
                             new CryptoStream(memoryStream, encryptor, CryptoStreamMode.Write))
    {
    using (StreamWriter EncryptStreamWriter =
                                  new StreamWriter(cryptoStream))
    {
    // шифруем plainText, записывая в поток
    EncryptStreamWriter.Write(plainText);
    }
    }
    // конвертируем byte массив в Base64 строку
    outStr = Convert.ToBase64String(memoryStream.ToArray());
    }
    }
    finally
    {
    // освобождаем ресурсы объекта RijndaelManaged
    if (aesAlg != null)
    aesAlg.Clear();
    }

    return outStr;
    }

    public static string DecryptString(string encryptedText, string sharedSecret)
    {
    RijndaelManaged aesAlg = null;
    string plaintext = null;

    try
    {
    // создаем ключ для расшифровки, используя секретный пароль и соль
    Rfc2898DeriveBytes key = new Rfc2898DeriveBytes(sharedSecret, m_salt);

    // создаем объект RijndaelManaged
    aesAlg = new RijndaelManaged();
    aesAlg.Key = key.GetBytes(aesAlg.KeySize / 8);
    aesAlg.IV = key.GetBytes(aesAlg.BlockSize / 8);

    ICryptoTransform decryptor = aesAlg.CreateDecryptor(aesAlg.Key, aesAlg.IV);

    // конвертируем Base64 строку в byte массив
    byte[] bytes = Convert.FromBase64String(encryptedText);

    // создаем потоки для расшифровки данных
    using (MemoryStream memoryStream = new MemoryStream(bytes))
    {
    using (CryptoStream cryptoStream =
                             new CryptoStream(memoryStream, decryptor, CryptoStreamMode.Read))
    {
    using (StreamReader DecryptStreamReader =
                                  new StreamReader(cryptoStream))
    {
    // считываем расшифровыванные данные из потока
    plaintext = DecryptStreamReader.ReadToEnd();
    }
    }
    }
    }
    finally
    {
    // освобождаем ресурсы объекта RijndaelManaged
    if (aesAlg != null)
    aesAlg.Clear();
    }

    return plaintext;
    }
    }
     
    использовать очень просто:
    // шифруем строку “vasya.pupkin@mail.ru” используя пароль “12345asdf”
    String encrypted = SimpleAES.EncryptString(“vasya.pupkin@mail.ru”, “12345asdf”);

    // в результате получаем следующее:
    // encrypted == “XL9Ol9LUxTX6KyT68tZVyCWXwkwUZqaF+p5R0NrO9Cs=”

    // расшифровываем данные
    String decrypted = SimpleAES.DecryptString(encrypted, “12345asdf”);

    // на выходе имеем исходную строку:
    // decrypted == “vasya.pupkin@mail.ru”

     

    Reply