Безопасно ли генерировать ключ и iv из пароля с помощью sha256 для aes? - PullRequest
0 голосов
/ 29 марта 2019

Я пишу программу шифрования и хочу иметь возможность использовать пароль для шифрования и дешифрования моего файла. Поэтому в настоящее время у меня есть пользователь, который вводит строковый пароль, передает его через sha256 и возвращает ключ и iv из него (половина хэша - ключ, а половина - IV). Я прочитал, что IV должен быть разным для каждого зашифрованного файла, так что я могу немного его изменить, но перед тем, как я это сделаю, я просто хотел посмотреть, был ли sha256 даже хорошим способом сделать это. Мой код выглядит следующим образом:

public Tuple<byte[],byte[]> Fetch_Password(string password)
    {
        byte[] hash = new byte[0];
        using (SHA256 sha = SHA256.Create())
        {
            hash = sha.ComputeHash(Encoding.Default.GetBytes(password));
        }
        byte[] key = Get_key(hash);
        byte[] iv = Get_iv(hash);

        return Tuple.Create(key, iv);
    }

Методы Get_key и Get_iv в приведенном выше коде в настоящее время просто разбивают хеш на две секции.

...