Пользователь пока ничего не рассказал о себе

Достижения

Все достижения (5)

Наибольший вклад в теги

Все теги (15)

Лучшие ответы пользователя

Все ответы (9)
  • C# и шифрование данных

    Bartez
    @Bartez
    /// /// Шифрует строку value
    ///
    /// Строка которую необходимо зашифровать
    /// Ключ шифрования
    public static string Encrypt(string str, string keyCrypt)
    {
    return Convert.ToBase64String(Encrypt(Encoding.UTF8.GetBytes(str), keyCrypt));
    }

    /// /// Расшифроывает данные из строки value
    ///
    /// Зашифрованая строка
    /// Ключ шифрования
    /// Возвращает null, если прочесть данные не удалось
    [DebuggerNonUserCodeAttribute]
    public static string Decrypt(string str, string keyCrypt)
    {
    string Result;
    try
    {
    CryptoStream Cs = InternalDecrypt(Convert.FromBase64String(str), keyCrypt);
    StreamReader Sr = new StreamReader(Cs);

    Result = Sr.ReadToEnd();

    Cs.Close();
    Cs.Dispose();

    Sr.Close();
    Sr.Dispose();
    }
    catch (CryptographicException)
    {
    return null;
    }

    return Result;
    }

    private static byte[] Encrypt(byte[] key, string value)
    {
    SymmetricAlgorithm Sa = Rijndael.Create();
    ICryptoTransform Ct = Sa.CreateEncryptor((new PasswordDeriveBytes(value, null)).GetBytes(16), new byte[16]);

    MemoryStream Ms = new MemoryStream();
    CryptoStream Cs = new CryptoStream(Ms, Ct, CryptoStreamMode.Write);

    Cs.Write(key, 0, key.Length);
    Cs.FlushFinalBlock();

    byte[] Result = Ms.ToArray();

    Ms.Close();
    Ms.Dispose();

    Cs.Close();
    Cs.Dispose();

    Ct.Dispose();

    return Result;
    }

    private static CryptoStream InternalDecrypt(byte[] key, string value)
    {
    SymmetricAlgorithm sa = Rijndael.Create();
    ICryptoTransform ct = sa.CreateDecryptor((new PasswordDeriveBytes(value, null)).GetBytes(16), new byte[16]);

    MemoryStream ms = new MemoryStream(key);
    return new CryptoStream(ms, ct, CryptoStreamMode.Read);
    }


    Работающий код из реального проекта.
    Ответ написан
    Комментировать
  • Корзина интернет-магазина: данные в cookies, или в базе

    Bartez
    @Bartez
    Раньше было принято хранить корзину в куках.
    Сейчас хорошей практикой является хранение корзины в БД.

    Преимущества хранения в БД:
    1) Корзина может храниться сколько угодно долго.
    2) Корзина не теряется, если покупатель зашёл с другого браузера/компьютера.
    Ответ написан
    2 комментария
  • Как организовать рассылку так, чтобы не забанили

    Bartez
    @Bartez
    Тоже есть свой проект с рассылкой, но мне в день нужно рассылать до 500-та. писем.
    Отсыдаю их с интервалом в 61 сек (1 минута + 1 сек).
    Для проверки в этом потоке всегда шлю ещё на тестовый ящик на другом домене.
    Письма доходят всегда.

    Надеюсь эта информация будет вам полезна.
    Ответ написан
    1 комментарий
  • "Софт от хабравчан" -- нужен ли такой блог?

    Bartez
    @Bartez
    Нужен! В этом блоге люди будут публиковать маленькие тулзы, которые помогают решать какие-то крайне важные для авторов задачи. Этакая борохолка.
    Во всяом случае мне бы читать такой блог было бы интересно.
    И программы там попадались бы порой действительно полезные.
    Ответ написан
    Комментировать

Лучшие вопросы пользователя

Все вопросы (6)