2015-06-29 5 views
1

Maarten Bodewes 'комментариев к this question, предположим, что AesCryptoServiceProvider.GenerateKey() небезопасно использовать для генерации ключей.Является ли AesCryptoServiceProvider.GenerateKey безопасным для использования?

В настоящее время мы используем этот метод для генерации криптографически защищенных ключей. Глядя на underlying implementation on Reference Source, GenerateKey() вызывает CryptGenKey в Win32 API.

Я не могу найти ресурсы, предлагающие CryptGenKey скомпрометирован. Можно ли использовать эту реализацию?

ответ

2

GenerateKey абсолютно безопасен, однако реализация по связанному вопросу не является.

Вы не можете позвонить Key = System.Text.Encoding.ASCII.GetString(provider.Key);, чтобы получить строку из случайного массива байт, GetString не может быть использован на случайных двоичных данных, то следует использовать только в виде массива байт generaded от вызова ASCII.GetBytes. Если вы хотите сохранить ключ в строчном формате, вам необходимо использовать форматирование, предназначенное для хранения двоичных данных, таких как Key = Convert.ToBase64String(provider.Key);

Смежные вопросы