шифрование md5 в asp.net - PullRequest
       5

шифрование md5 в asp.net

1 голос
/ 28 апреля 2011

Я использую шифрование md5 для данных о зарплате моей компании.
Эта страница должна просматриваться только тогда, когда пользователь вводит правильный пароль.iam хранит этот зашифрованный пароль в базе данных.
при получении iam, сравнивая зашифрованный пароль.
Можно ли использовать этот пароль в качестве ключа?

я хочу добиться следующего

  1. Если пользователь сохраняет данные о зарплате, этот хэш пароля зашифрует данные
  2. Если пользователь просматривает информацию о зарплате,этот пароль должен использоваться для расшифровки данных

или мне нужно использовать какой-то алгоритм, например Triple Des?

Ответы [ 2 ]

1 голос
/ 28 апреля 2011

MD5 - одностороннее шифрование, используйте Triple DES для шифрования данных и MD5 для шифрования пароля. Вот что я использую:

public static string Crypt(this string data, string password, bool encrypt)
{
    var u8Salt = new byte[] { 0x26, 0x19, 0x81, 0x4E, 0xA0, 0x6D, 0x95, 0x34, 0x26, 0x75, 0x64, 0x05, 0xF6 };
    var iPass = new Rfc2898DeriveBytes(password, u8Salt);
    var iAlg = Aes.Create();
    iAlg.Key = iPass.GetBytes(32);
    iAlg.IV = iPass.GetBytes(16);
    var iTrans = (encrypt) ? iAlg.CreateEncryptor() : iAlg.CreateDecryptor();
    var iMem = new MemoryStream();
    var iCrypt = new CryptoStream(iMem, iTrans, CryptoStreamMode.Write);
    var u8Data = encrypt ? Encoding.Unicode.GetBytes(data) : Convert.FromBase64String(data);
    try
    {
        iCrypt.Write(u8Data, 0, u8Data.Length);
        iCrypt.Close();
        return encrypt ? Convert.ToBase64String(iMem.ToArray()) : Encoding.Unicode.GetString(iMem.ToArray());
    }
    catch
    {
        return null;
    }
}
1 голос
/ 28 апреля 2011

Да, вам нужно использовать (обратимый) алгоритм шифрования , а не (односторонний) алгоритм хеширования .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...